|
@@ -1,9 +1,9 @@
|
|
|
|
|
|
-本次升级变更部分,依次按下面顺序执行!
|
|
|
+鏈��鍗囩骇鍙樻洿閮ㄥ垎锛屼緷娆℃寜涓嬮潰椤哄簭鎵ц�锛�
|
|
|
|
|
|
-1、各工程代码合并至 master 分支(已合并)
|
|
|
+1銆佸悇宸ョ▼浠g爜鍚堝苟鑷� master 鍒嗘敮锛堝凡鍚堝苟锛�
|
|
|
|
|
|
- 配置项变更(已配置到配置中心工程)
|
|
|
+ 閰嶇疆椤瑰彉鏇达紙宸查厤缃�埌閰嶇疆涓�績宸ョ▼锛�
|
|
|
../prod/application.properties
|
|
|
examcloud.data.rule.enable=true
|
|
|
|
|
@@ -11,13 +11,13 @@
|
|
|
question.api.domain=https://www.exam-cloud.cn
|
|
|
oe.admin.api.domain=https://www.exam-cloud.cn
|
|
|
|
|
|
-2、在Jenkins上各工程打包,历史各工程包先备份!再将“待发布工程包”分发 至 各服务器的对应目录
|
|
|
+2銆佸湪Jenkins涓婂悇宸ョ▼鎵撳寘锛屽巻鍙插悇宸ョ▼鍖呭厛澶囦唤锛佸啀灏嗏€滃緟鍙戝竷宸ョ▼鍖呪€濆垎鍙� 鑷� 鍚勬湇鍔″櫒鐨勫�搴旂洰褰�
|
|
|
|
|
|
-3、限制登录入口 --> 停服
|
|
|
+3銆侀檺鍒剁櫥褰曞叆鍙� --> 鍋滄湇
|
|
|
|
|
|
-4、执行数据库升级脚本
|
|
|
+4銆佹墽琛屾暟鎹�簱鍗囩骇鑴氭湰
|
|
|
|
|
|
- # 新增用户日志表
|
|
|
+ # 鏂板�鐢ㄦ埛鏃ュ織琛�
|
|
|
CREATE TABLE `ec_b_admin_operate` (
|
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
|
`creation_time` datetime NOT NULL,
|
|
@@ -35,7 +35,7 @@
|
|
|
KEY `IDX_R_ADMIN_OPERATE_02` (`root_org_id`,`operate_user_id`,`operate_time`)
|
|
|
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
|
|
|
|
|
|
- # 新增数据权限规则表
|
|
|
+ # 鏂板�鏁版嵁鏉冮檺瑙勫垯琛�
|
|
|
CREATE TABLE ec_b_user_data_rule (
|
|
|
id BIGINT ( 20 ) NOT NULL AUTO_INCREMENT,
|
|
|
root_org_id BIGINT ( 20 ) NOT NULL,
|
|
@@ -49,7 +49,7 @@
|
|
|
UNIQUE KEY IDX_USER_DATA_RULE_01 ( user_id, type, ref_id )
|
|
|
) ENGINE = INNODB AUTO_INCREMENT = 0 DEFAULT CHARSET = utf8;
|
|
|
|
|
|
- # 新增阅卷异步导出表
|
|
|
+ # 鏂板�闃呭嵎寮傛�瀵煎嚭琛�
|
|
|
CREATE TABLE `ec_m_export_task` (
|
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
|
`creation_time` datetime NOT NULL,
|
|
@@ -72,66 +72,66 @@
|
|
|
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
|
|
|
|
|
|
|
|
|
- # 新增“学院管理员”角色
|
|
|
- INSERT INTO ec_b_role ( CODE, NAME, root_org_id, creation_time, update_time ) VALUES ( 'DATA_ADMIN', '学院管理员', NULL, now(), now());
|
|
|
+ # 鏂板�鈥滃�闄㈢�鐞嗗憳鈥濊�鑹�
|
|
|
+ INSERT INTO ec_b_role ( CODE, NAME, root_org_id, creation_time, update_time ) VALUES ( 'DATA_ADMIN', '瀛﹂櫌绠$悊鍛�', NULL, now(), now());
|
|
|
|
|
|
- # 网考异步导出表 新增字段
|
|
|
+ # 缃戣€冨紓姝ュ�鍑鸿〃 鏂板�瀛楁�
|
|
|
alter table ec_oe_export_task add export_param varchar(500);
|
|
|
alter table ec_oe_export_task add start_time datetime DEFAULT NULL;
|
|
|
alter table ec_oe_export_task add end_time datetime DEFAULT NULL;
|
|
|
|
|
|
- # 首次登录改密码
|
|
|
+ # 棣栨�鐧诲綍鏀瑰瘑鐮�
|
|
|
alter table ec_b_user add password_weak bit(1) NOT NULL DEFAULT 1;
|
|
|
update ec_b_user set password_weak=0;
|
|
|
|
|
|
alter table ec_b_student add password_weak bit(1) NOT NULL DEFAULT 1;
|
|
|
update ec_b_student set password_weak=0;
|
|
|
|
|
|
- #学生密码加密(可重复执行)
|
|
|
+ #瀛︾敓瀵嗙爜鍔犲瘑锛堝彲閲嶅�鎵ц�锛�
|
|
|
update ec_b_student set password=UPPER(SHA2(CONCAT(identity_number,password),256)) where LENGTH(password)<64;
|
|
|
|
|
|
- #后台用户密码加密(可重复执行)
|
|
|
+ #鍚庡彴鐢ㄦ埛瀵嗙爜鍔犲瘑锛堝彲閲嶅�鎵ц�锛�
|
|
|
update ec_b_user set password=UPPER(SHA2(CONCAT(login_name,password),256))
|
|
|
where id not in (select f.user_id from ec_b_user_role_relation f where f.role_id=1) and LENGTH(password)<64;
|
|
|
|
|
|
|
|
|
- MySQL 添加索引(大表,执行非常耗时):
|
|
|
+ MySQL 娣诲姞绱㈠紩锛堝ぇ琛�紝鎵ц�闈炲父鑰楁椂锛夛細
|
|
|
ALTER TABLE ec_e_exam_student DROP INDEX IDX_E_E_S_001001;
|
|
|
ALTER TABLE ec_e_exam_student ADD UNIQUE INDEX IDX_E_E_S_001001 (exam_id, course_id, student_id) USING BTREE;
|
|
|
|
|
|
ALTER TABLE ec_e_exam_student ADD INDEX IDX_E_E_S_001007 (org_id);
|
|
|
ALTER TABLE ec_b_student ADD INDEX IDX_B_S_002002 (org_id);
|
|
|
|
|
|
- MongoDB 添加索引(大表,执行非常耗时):
|
|
|
+ MongoDB 娣诲姞绱㈠紩锛堝ぇ琛�紝鎵ц�闈炲父鑰楁椂锛夛細
|
|
|
db.getCollection('examRecordQuestions').createIndex({examRecordDataId:1},{"name":"INDEX_examRecordDataId","background":true})
|
|
|
|
|
|
|
|
|
- 网考导出任务 - 参数配置:
|
|
|
+ 缃戣€冨�鍑轰换鍔� - 鍙傛暟閰嶇疆锛�
|
|
|
INSERT INTO ec_b_sys_prop ( prop_key, prop_value, prop_value_type, description, creation_time, update_time )
|
|
|
- VALUES ('oe.export.jobCount','1','INTEGER','网考导出任务并发数',now(),now());
|
|
|
+ VALUES ('oe.export.jobCount','1','INTEGER','缃戣€冨�鍑轰换鍔″苟鍙戞暟',now(),now());
|
|
|
|
|
|
INSERT INTO ec_b_sys_prop ( prop_key, prop_value, prop_value_type, description, creation_time, update_time )
|
|
|
- VALUES ('m.export.jobCount','1','INTEGER','阅卷导出任务并发数',now(),now());
|
|
|
+ VALUES ('m.export.jobCount','1','INTEGER','闃呭嵎瀵煎嚭浠诲姟骞跺彂鏁�',now(),now());
|
|
|
|
|
|
|
|
|
-5、数据割接工具
|
|
|
+5銆佹暟鎹�壊鎺ュ伐鍏�
|
|
|
|
|
|
- # 初始化用户数据权限基础数据
|
|
|
- 工程源码:http://git.qmth.com.cn/examcloud-DevOps/examcloud-oe-tool.git
|
|
|
- master 分支下,找到 “cn.com.qmth.dp.examcloud.oe.modules.init_user_data_rule.InitUserDataRule” 工具类
|
|
|
- 配置好“正式环境”的数据库账号(可读写账号)后,打包至服务器环境上执行一次即可(允许重复执行)!
|
|
|
+ # 鍒濆�鍖栫敤鎴锋暟鎹�潈闄愬熀纭€鏁版嵁
|
|
|
+ 宸ョ▼婧愮爜锛歨ttp://git.qmth.com.cn/examcloud-DevOps/examcloud-oe-tool.git
|
|
|
+ master 鍒嗘敮涓嬶紝鎵惧埌 鈥渃n.com.qmth.dp.examcloud.oe.modules.init_user_data_rule.InitUserDataRule鈥� 宸ュ叿绫�
|
|
|
+ 閰嶇疆濂解€滄�寮忕幆澧冣€濈殑鏁版嵁搴撹处鍙凤紙鍙��鍐欒处鍙凤級鍚庯紝鎵撳寘鑷虫湇鍔″櫒鐜��涓婃墽琛屼竴娆″嵆鍙�紙鍏佽�閲嶅�鎵ц�锛夛紒
|
|
|
|
|
|
|
|
|
-6、启所有应用服务,注意oe-task工程的配置文件是否配对!!!
|
|
|
+6銆佸惎鎵€鏈夊簲鐢ㄦ湇鍔★紝娉ㄦ剰oe-task宸ョ▼鐨勯厤缃�枃浠舵槸鍚﹂厤瀵癸紒锛侊紒
|
|
|
|
|
|
|
|
|
-7、管理端 --> 新增菜单:
|
|
|
- 基础信息菜单 --> 用户管理 --> 操作日志 【编码:index_admin_operate】 【属性1:menu】 【权重:0】 【属性5:/basic/admin_operate】
|
|
|
- 基础信息菜单 --> 用户管理 --> 普通用户管理 --> 数据权限按钮 【编码:user_data_rule_setting】 【属性1:button】 【权重:0】
|
|
|
- 基础信息菜单 --> 用户管理 --> 普通用户管理 --> 权限复制按钮 【编码:user_data_rule_copy】 【属性1:button】 【权重:0】
|
|
|
- 阅卷管理菜单 --> 任务管理 【编码:marking_task_manager】 【属性1:menu】 【权重:6】
|
|
|
- 阅卷管理菜单 --> 任务管理 --> 导出任务列表 【编码:marking_export_task_list】 【属性1:menu】 【权重:10】 【属性5:/marking/export_task_list】
|
|
|
+7銆佺�鐞嗙� --> 鏂板�鑿滃崟锛�
|
|
|
+ 鍩虹�淇℃伅鑿滃崟 --> 鐢ㄦ埛绠$悊 --> 鎿嶄綔鏃ュ織 銆愮紪鐮侊細index_admin_operate銆� 銆愬睘鎬�1锛歮enu銆� 銆愭潈閲嶏細0銆� 銆愬睘鎬�5锛�/basic/admin_operate銆�
|
|
|
+ 鍩虹�淇℃伅鑿滃崟 --> 鐢ㄦ埛绠$悊 --> 鏅�€氱敤鎴风�鐞� --> 鏁版嵁鏉冮檺鎸夐挳 銆愮紪鐮侊細user_data_rule_setting銆� 銆愬睘鎬�1锛歜utton銆� 銆愭潈閲嶏細0銆�
|
|
|
+ 鍩虹�淇℃伅鑿滃崟 --> 鐢ㄦ埛绠$悊 --> 鏅�€氱敤鎴风�鐞� --> 鏉冮檺澶嶅埗鎸夐挳 銆愮紪鐮侊細user_data_rule_copy銆� 銆愬睘鎬�1锛歜utton銆� 銆愭潈閲嶏細0銆�
|
|
|
+ 闃呭嵎绠$悊鑿滃崟 --> 浠诲姟绠$悊 銆愮紪鐮侊細marking_task_manager銆� 銆愬睘鎬�1锛歮enu銆� 銆愭潈閲嶏細6銆�
|
|
|
+ 闃呭嵎绠$悊鑿滃崟 --> 浠诲姟绠$悊 --> 瀵煎嚭浠诲姟鍒楄〃 銆愮紪鐮侊細marking_export_task_list銆� 銆愬睘鎬�1锛歮enu銆� 銆愭潈閲嶏細10銆� 銆愬睘鎬�5锛�/marking/export_task_list銆�
|
|
|
|
|
|
|
|
|
-8、发版完成!
|
|
|
+8銆佸彂鐗堝畬鎴愶紒
|
|
|
|