2021-04-升级说明.txt 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. 本次升级变更部分,依次按下面顺序执行!
  2. 1、各工程代码合并至 master 分支(已合并)
  3. 配置项变更(已配置到配置中心工程)
  4. ../prod/application.properties
  5. examcloud.data.rule.enable=true
  6. ../prod/application-API.properties
  7. question.api.domain=https://www.exam-cloud.cn
  8. oe.admin.api.domain=https://www.exam-cloud.cn
  9. 2、在Jenkins上各工程打包,历史各工程包先备份!再将“待发布工程包”分发 至 各服务器的对应目录
  10. 3、限制登录入口 --> 停服
  11. 4、执行数据库升级脚本
  12. # 新增用户日志表
  13. CREATE TABLE `ec_b_admin_operate` (
  14. `id` bigint(20) NOT NULL AUTO_INCREMENT,
  15. `creation_time` datetime NOT NULL,
  16. `update_time` datetime NOT NULL,
  17. `msg_id` varchar(255) NOT NULL,
  18. `operate` varchar(255) NOT NULL,
  19. `operate_info` varchar(500),
  20. `operate_ip` varchar(255) NOT NULL,
  21. `operate_time` datetime NOT NULL,
  22. `operate_user_id` bigint(20) NOT NULL,
  23. `root_org_id` bigint(20) NOT NULL,
  24. PRIMARY KEY (`id`),
  25. UNIQUE KEY `IDX_R_ADMIN_OPERATE_03` (`msg_id`),
  26. KEY `IDX_R_ADMIN_OPERATE_01` (`root_org_id`,`operate_user_id`),
  27. KEY `IDX_R_ADMIN_OPERATE_02` (`root_org_id`,`operate_user_id`,`operate_time`)
  28. ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
  29. # 新增数据权限规则表
  30. CREATE TABLE ec_b_user_data_rule (
  31. id BIGINT ( 20 ) NOT NULL AUTO_INCREMENT,
  32. root_org_id BIGINT ( 20 ) NOT NULL,
  33. user_id BIGINT ( 20 ) NOT NULL,
  34. type VARCHAR ( 50 ) NOT NULL,
  35. ref_id BIGINT ( 20 ) NOT NULL,
  36. enabled bit ( 1 ) NOT NULL DEFAULT b'1',
  37. creation_time datetime ( 6 ) NOT NULL,
  38. update_time datetime ( 6 ) NOT NULL,
  39. PRIMARY KEY ( id ),
  40. UNIQUE KEY IDX_USER_DATA_RULE_01 ( user_id, type, ref_id )
  41. ) ENGINE = INNODB AUTO_INCREMENT = 0 DEFAULT CHARSET = utf8;
  42. # 新增阅卷异步导出表
  43. CREATE TABLE `ec_m_export_task` (
  44. `id` bigint(20) NOT NULL AUTO_INCREMENT,
  45. `creation_time` datetime NOT NULL,
  46. `update_time` datetime NOT NULL,
  47. `work_id` bigint(20) DEFAULT NULL,
  48. `file_path` varchar(255) DEFAULT NULL,
  49. `root_org_id` bigint(20) NOT NULL,
  50. `status` varchar(50) NOT NULL,
  51. `status_msg` varchar(500) DEFAULT NULL,
  52. `type` varchar(50) NOT NULL,
  53. `creator` bigint(20) NOT NULL,
  54. `export_param` varchar(500) DEFAULT NULL,
  55. `start_time` datetime DEFAULT NULL,
  56. `end_time` datetime DEFAULT NULL,
  57. PRIMARY KEY (`id`),
  58. KEY `IDX_OE_ET_001` (`root_org_id`),
  59. KEY `IDX_OE_ET_002` (`work_id`),
  60. KEY `IDX_OE_ET_003` (`type`),
  61. KEY `IDX_OE_ET_004` (`status`)
  62. ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
  63. # 新增“学院管理员”角色
  64. INSERT INTO ec_b_role ( CODE, NAME, root_org_id, creation_time, update_time ) VALUES ( 'DATA_ADMIN', '学院管理员', NULL, now(), now());
  65. # 网考异步导出表 新增字段
  66. alter table ec_oe_export_task add export_param varchar(500);
  67. alter table ec_oe_export_task add start_time datetime DEFAULT NULL;
  68. alter table ec_oe_export_task add end_time datetime DEFAULT NULL;
  69. # 首次登录改密码
  70. alter table ec_b_user add password_weak bit(1) NOT NULL DEFAULT 1;
  71. update ec_b_user set password_weak=0;
  72. alter table ec_b_student add password_weak bit(1) NOT NULL DEFAULT 1;
  73. update ec_b_student set password_weak=0;
  74. #学生密码加密(可重复执行)
  75. update ec_b_student set password=UPPER(SHA2(CONCAT(identity_number,password),256)) where LENGTH(password)<64;
  76. #后台用户密码加密(可重复执行)
  77. update ec_b_user set password=UPPER(SHA2(CONCAT(login_name,password),256))
  78. where id not in (select f.user_id from ec_b_user_role_relation f where f.role_id=1) and LENGTH(password)<64;
  79. MySQL 添加索引(大表,执行非常耗时):
  80. ALTER TABLE ec_e_exam_student DROP INDEX IDX_E_E_S_001001;
  81. ALTER TABLE ec_e_exam_student ADD UNIQUE INDEX IDX_E_E_S_001001 (exam_id, course_id, student_id) USING BTREE;
  82. ALTER TABLE ec_e_exam_student ADD INDEX IDX_E_E_S_001007 (org_id);
  83. ALTER TABLE ec_b_student ADD INDEX IDX_B_S_002002 (org_id);
  84. MongoDB 添加索引(大表,执行非常耗时):
  85. db.getCollection('examRecordQuestions').createIndex({examRecordDataId:1},{"name":"INDEX_examRecordDataId","background":true})
  86. 网考导出任务 - 参数配置:
  87. INSERT INTO ec_b_sys_prop ( prop_key, prop_value, prop_value_type, description, creation_time, update_time )
  88. VALUES ('oe.export.jobCount','1','INTEGER','网考导出任务并发数',now(),now());
  89. INSERT INTO ec_b_sys_prop ( prop_key, prop_value, prop_value_type, description, creation_time, update_time )
  90. VALUES ('m.export.jobCount','1','INTEGER','阅卷导出任务并发数',now(),now());
  91. 5、数据割接工具
  92. # 初始化用户数据权限基础数据
  93. 工程源码:http://git.qmth.com.cn/examcloud-DevOps/examcloud-oe-tool.git
  94. master 分支下,找到 “cn.com.qmth.dp.examcloud.oe.modules.init_user_data_rule.InitUserDataRule” 工具类
  95. 配置好“正式环境”的数据库账号(可读写账号)后,打包至服务器环境上执行一次即可(允许重复执行)!
  96. 6、启所有应用服务,注意oe-task工程的配置文件是否配对!!!
  97. 7、管理端 --> 新增菜单:
  98. 基础信息菜单 --> 用户管理 --> 操作日志 【编码:index_admin_operate】 【属性1:menu】 【权重:0】 【属性5:/basic/admin_operate】
  99. 基础信息菜单 --> 用户管理 --> 普通用户管理 --> 数据权限按钮 【编码:user_data_rule_setting】 【属性1:button】 【权重:0】
  100. 基础信息菜单 --> 用户管理 --> 普通用户管理 --> 权限复制按钮 【编码:user_data_rule_copy】 【属性1:button】 【权重:0】
  101. 阅卷管理菜单 --> 任务管理 【编码:marking_task_manager】 【属性1:menu】 【权重:6】
  102. 阅卷管理菜单 --> 任务管理 --> 导出任务列表 【编码:marking_export_task_list】 【属性1:menu】 【权重:10】 【属性5:/marking/export_task_list】
  103. 8、发版完成!