UpdateController.class.php
4.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
/**
* Created by PhpStorm.
*/
namespace Frontend\Controller\UpdateDB;
class UpdateController extends AbstractController
{
/**
* 员圈套件-调研中心数据库升级
*/
public function Index()
{
$sql = $this->_updateSql();
if (empty($sql)) {
exit('没有可升级的sql');
}
$db = \Think\Db::getInstance();
try {
$db->execute($sql);
} catch (\Exception $e) {
exit('数据库升级失败:' . $e->getMessage());
}
exit("数据库升级完成,执行sql如下:{$sql}");
}
/**
* 待升级的sql
* 1. oa_questionnaire_classify,增加qc_desc字段
* 2. oa_questionnaire_baseinfo,增加is_notice字段;
* oa_questionnaire_baseinfo,修改secret字段默认值为0,备注为"内容保密(0:关闭;1:开启)";
* oa_questionnaire_baseinfo,修改share字段备注为"是否可允许外部人员参与(0:不允许;1:允许)";
* oa_questionnaire_baseinfo,修改anonymous字段默认值为0,备注为"匿名(0:匿名;1:实名)";
* oa_questionnaire_baseinfo,删除repeat、is_redpack、is_openfield字段
* 3. oa_questionnaire_question,修改q_required字段默认值为0,备注为"是否必填(0:非必填,1:必填)";
* 修改q_other字段默认值为0,备注为"是否包含其他选项(0:不包含,1:包含)"
* 4. 删除表oa_questionnaire_count(用户参加调研次数统计表)
* 5. oa_questionnaire_baseinfo 更新secret=1的值为0,secret=2的值为1
* oa_questionnaire_baseinfo 更新share=2的值为0
* oa_questionnaire_baseinfo 更新anonymous=1的值为0,anonymous=2的值为1
* 6. oa_questionnaire_question 更新q_required=1的值为0,q_required=2的值为1
* oa_questionnaire_question 更新q_other=1的值为0,q_other=2的值为1
*
* @author wanghuan
* @return string
*/
private function _updateSql()
{
$sql = "
ALTER TABLE `oa_questionnaire_classify` ADD `qc_desc` VARCHAR(360) NOT NULL DEFAULT '' COMMENT '分类描述' AFTER `qc_name`;
ALTER TABLE `oa_questionnaire_baseinfo` ADD `is_notice` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '调研发布时是否进行提醒(0:否,1:是)' AFTER `involved_total`;
ALTER TABLE `oa_questionnaire_baseinfo` ALTER COLUMN `secret` DROP DEFAULT;
ALTER TABLE `oa_questionnaire_baseinfo` ALTER COLUMN `secret` SET DEFAULT 0;
ALTER TABLE `oa_questionnaire_baseinfo` MODIFY COLUMN `secret` TINYINT(1) COMMENT '内容保密(0:关闭;1:开启)';
ALTER TABLE `oa_questionnaire_baseinfo` MODIFY COLUMN `share` TINYINT(1) COMMENT '是否可允许外部人员参与(0:不允许;1:允许)';
ALTER TABLE `oa_questionnaire_baseinfo` ALTER COLUMN `anonymous` DROP DEFAULT;
ALTER TABLE `oa_questionnaire_baseinfo` ALTER COLUMN `anonymous` SET DEFAULT 0;
ALTER TABLE `oa_questionnaire_baseinfo` MODIFY COLUMN `anonymous` TINYINT(1) COMMENT '匿名(0:匿名;1:实名)';
ALTER TABLE `oa_questionnaire_baseinfo` DROP `repeat`, DROP `is_redpack`, DROP `is_openfield`;
ALTER TABLE `oa_questionnaire_question` ALTER COLUMN `q_required` DROP DEFAULT;
ALTER TABLE `oa_questionnaire_question` ALTER COLUMN `q_required` SET DEFAULT 0;
ALTER TABLE `oa_questionnaire_question` MODIFY COLUMN `q_required` TINYINT(1) COMMENT '是否必填(0:非必填,1:必填)';
ALTER TABLE `oa_questionnaire_question` ALTER COLUMN `q_other` DROP DEFAULT;
ALTER TABLE `oa_questionnaire_question` ALTER COLUMN `q_other` SET DEFAULT 0;
ALTER TABLE `oa_questionnaire_question` MODIFY COLUMN `q_other` TINYINT(1) COMMENT '是否包含其他选项(0:不包含,1:包含)';
DROP TABLE `oa_questionnaire_count`;
UPDATE `oa_questionnaire_baseinfo` SET `secret`=0 WHERE `secret`=1;
UPDATE `oa_questionnaire_baseinfo` SET `secret`=1 WHERE `secret`=2;
UPDATE `oa_questionnaire_baseinfo` SET `share`=0 WHERE `share`=2;
UPDATE `oa_questionnaire_baseinfo` SET `anonymous`=0 WHERE `anonymous`=1;
UPDATE `oa_questionnaire_baseinfo` SET `anonymous`=1 WHERE `anonymous`=2;
UPDATE `oa_questionnaire_question` SET `q_required`=0 WHERE `q_required`=1;
UPDATE `oa_questionnaire_question` SET `q_required`=1 WHERE `q_required`=2;
UPDATE `oa_questionnaire_question` SET `q_other`=0 WHERE `q_other`=1;
UPDATE `oa_questionnaire_question` SET `q_other`=1 WHERE `q_other`=2;
";
return $sql;
}
}