# LA 版本升级到 LA2 版本

⚠️文档中以MySQL数据安装为示例进行安装。

⚠️LA2 版本使用的AFCenter版本为8.2.2.2,对应的EOS Platform版本为8.2.2.2。

本文介绍从数据质量 7.1 LA 版本升级到 7.1 LA2 版本的升级过程。

# 介质准备

下载数据质量 7.1 LA2 介质,解压到安装服务器上。

微应用版本

微应用版本介质目录如下:

## 先解压Primeton_QualityCube_7.1_LA2_MicroApp.tar.gz
## 再解压Primeton_QualityCube_7.1_LA2_Server.tar.gz 、Primeton_QualityCube_7.1_LA2_Scheduler.tar.gz 、Primeton_QualityCube_7.1_LA2_Executor.tar.gz和Primeton_QualityCube_7.1_LA2_UI.tar.gz。
## Primeton_QualityCube_7.1_LA2_Server.tar.gz
├── bin
│   ├── shutdown.cmd
│   ├── shutdown.sh
│   ├── startup.cmd
│   └── startup.sh
├── config
│   ├── QUALITY
│   ├── application-afc.properties
│   ├── application-dqms.properties
│   ├── application.properties
│   ├── application-nacos.properties
│   ├── application-eureka.properties
│   ├── bootstrap.properties
│   └── logback-spring.xml
├── db-scripts
│   ├── DaMeng
│   ├── Mysql
│   ├── GaussDB
│   ├── Oracle
│   └── upgrade ## 7.1la-7.1la2升级脚本目录
├── lib ## 数据库驱动目录,mysql、oracle驱动需要自行下载
│   ├── DmJdbcDriver18-8.1.1.193.jar
│   ├── hive-jdbc-2.1.1.jar
│   └── opengauss-jdbc-3.0.0.jar
└── dqms-boot-7.1.0-exec.jar
## Primeton_QualityCube_7.1_LA2_Scheduler
├── config
│   ├── application.properties
│   ├── logback.xml
├── lib
│   ├── .gitkeep
├── README.md
├── startJob.bat
├── startJob.sh
├── stopJob.bat
├── stopJob.sh
└── xxl-job-admin-2.2.0-exec.jar
## Primeton_QualityCube_7.1_LA2_Executor
├── bin
│   ├── shutdown.cmd
│   ├── shutdown.sh
│   ├── startup.cmd
│   └── startup.sh
├── config
│   ├── legal-validator-tpl
│   ├── mapper
│   ├── spark
│   ├── templates
│   ├── account.properties
│   ├── application.properties
│   ├── banner.txt
│   ├── core-site.xml
│   ├── hdfs-site.xml
│   └── logback.xml
├── spark
│   └── hiveseq_check
├── lib ## 数据库驱动目录,mysql驱动需要自行下载
│   └── mysql-connector-java-8.0.19.jar
├── README.md
└── quality-executor-7.1.0-exec.jar
## Primeton_QualityCube_7.1_LA2_UI
├── dist
│   ├── assets
│   ├── static
│   ├── index.html
│   └── remoteEntry.js
└── quality.conf

独立部署版本

独立部署版本介质目录如下:

## 解压Primeton_QualityCube_7.1_LA_Standalone.tar.gz
├── standalone
│   ├── clearLog.cmd
│   ├── clearLog.sh
│   ├── readme.txt
│   ├── shutdown.cmd
│   ├── shutdown.sh
│   ├── startup.cmd
│   └── startup.sh
├── server
│   ├── primetonlicense.xml
│   ├── executor
│   │   ├── bin
│   │   │   ├── shutdown.cmd
│   │   │   ├── shutdown.sh
│   │   │   ├── startup.cmd
│   │   │   └── startup.sh
│   │   ├── config
│   │   │   ├── legal-validator-tpl
│   │   │   ├── mapper
│   │   │   ├── spark
│   │   │   ├── templates
│   │   │   ├── account.properties
│   │   │   ├── application.properties
│   │   │   ├── banner.txt
│   │   │   ├── core-site.xml
│   │   │   ├── hdfs-site.xml
│   │   │   └── logback.xml
│   │   ├── spark
│   │   │   └── hiveseq_check
│   │   ├── lib ## 数据库驱动目录,mysql驱动需要自行下载
│   │   │   └── mysql-connector-java-8.0.19.jar
│   │   ├── README.md
│   │   └── quality-executor-7.1.0-exec.jar
│   ├── scheduler
│   │   ├── config
│   │   │   ├── application.properties
│   │   │   ├── logback.xml
│   │   ├── lib
│   │   │   ├── .gitkeep
│   │   ├── README.md
│   │   ├── startJob.bat
│   │   ├── startJob.sh
│   │   ├── stopJob.bat
│   │   ├── stopJob.sh
│   │   └── xxl-job-admin-2.2.0-exec.jar
│   └── quality
│      ├── afc-embed-boot-7.1.0-exec.jar
│      ├── config
│      │   ├── QUALITY
│      │   ├── application-afc.properties
│      │   ├── application-dqms.properties
│      │   ├── application.properties
│      │   ├── application-eureka.properties
│      │   ├── application-nacos.properties
│      │   ├── bootstrap.properties
│      │   └── logback-spring.xml
│      ├── lib ## 数据库驱动目录,mysql、oracle驱动需要自行下载
│      │   ├── DmJdbcDriver18-8.1.1.193
│      │   ├── hive-jdbc-2.1.1.jar
│      │   └── opengauss-jdbc-3.0.0.jar
│      ├── bin
│      │   ├── shutdown.cmd
│      │   ├── shutdown.sh
│      │   ├── startup.cmd
│      │   └── startup.sh
│      └── db-scripts
│         ├── afcenter
│         ├── eos
│         ├── bfp
│         ├── full
│         ├── locode
│         └── dqms
│            ├── DaMeng
│            ├── Mysql
│            ├── GaussDB
│            ├── Oracle
│            └── upgrade ## 7.1la-7.1la2升级脚本目录
└── web
   ├── afcenter
   │   ├── assets
   │   ├── bfp
   │   ├── components
   │   ├── components-ext
   │   ├── config
   │   ├── formDesigner
   │   ├── ide
   │   ├── quality ## 数据质量前端资源文件
   │   ├── static
   │   ├── remoteEntry.js
   │   ├── remoteEntry.js.gz
   │   ├── version.properties
   │   └── index.html
   └── conf
      └── quality.conf

# 执行升级脚本

⚠️升级前请先备份数据。

升级脚本从db-scripts/*/upgrade目录中获取,文件列表如下:

├── DaMeng
├── Mysql
├── GaussDB
└── Oracle

微应用版本

使用微应用版本部署时,AFCenter、数据质量后端服务是独立进程,因此都是独立的数据库,需要分别执行升级脚本。

升级AFCenter数据库

mysql> source 00-quaity-afc-data.sql

升级数据质量后端服务数据库(默认quaity_pub)

mysql> source 10-quaity-ddl.sql
mysql> source 11-quaity-data.sql
mysql> source 12-quality-function.sql

独立部署版本

独立部署版本部署时,AFCenter、数据质量后端服务为同一数据库,直接执行升级脚本即可。

mysql> source 00-quaity-afc-data.sql
mysql> source 01-afc-template-data.sql
mysql> source 10-quaity-ddl.sql
mysql> source 11-quaity-data.sql
mysql> source 12-quality-function.sql

# 替换新版本介质

⚠️升级前请先替换文件。

更新数据质量后端服务

使用解压后的后端介质文件,替换原有文件。

对于微应用版本,使用Primeton_QualityCube_7.1_LA2_Server.tar.gz解压后进行替换。对于独立部署版本,可以使用server/quality目录替换原有文件。

更新调度器服务

对于微应用版本,使用Primeton_QualityCube_7.1_LA2_Scheduler.tar.gz解压后进行替换。对于独立部署版本,可以使用server/scheduler目录替换原有文件。

更新执行器服务

对于微应用版本,使用Primeton_QualityCube_7.1_LA2_Executor.tar.gz解压后进行替换。对于独立部署版本,可以使用server/executor目录替换原有文件。

更新数据质量前端资源

对于微应用版本,使用Primeton_QualityCube_7.1_LA2_UI.tar.gz解压后的dist目录进行替换。对于独立部署版本,使用web/afcenter/quality目录进行替换原有文件。更新后,无需修改nginx配置。

# 验证

验证后端服务

访问数据质量平台在线文档地址http://<ip>:<port>/swagger-ui.html,确认后端服务是否正常。

验证调度器服务

访问调度器xxl-job地址http://<ip>:<port>/job-admin,确认调度器服务是否正常。

验证执行器服务

查看调度器下的执行器是否存在,确认执行器服务是否正常。

验证前端服务

访问AFCenter,登录后切换到数据质量,检查菜单、数据是否正常展示。

# 附录

# 新增配置说明

后端配置说明

quality\config\application-dqms.properties配置文件说明

afc.system-variable.mdm-resGroupId=quality-11
afc.system-variable.afc-resGroupId=quality-12
##新增afc以及主数据相关系统变量配置

check.result.save-mode=local
#check.result.host=10.15.15.136
#check.result.port=22
#check.result.username=test
#check.result.password=test
check.result.local-temp-dir=${common.base_dir}/dataCheck
check.result.upload-root-dir=${common.base_dir}/dataCheck
#
datasource.config.save-mode=local
#datasource.config.host=
#datasource.config.port=
#datasource.config.username=
#datasource.config.password=
#datasource.config.reply=
datasource.config.kerberos-path=${common.base_dir}/kerberos/

executor\config\application.properties配置文件说明

#告警邮件服务器配置
spring.mail.host=smtp.exmail.qq.com
spring.mail.protocol=smtp
spring.mail.username=lizw@primeton.com
spring.mail.password=i7cBHaDFzeWex539

#true means null-value-check will check blank values
datacheck.check-rules.null-value-check.include-blank-value=true

nginx配置修改

worker_processes 1;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

    sendfile on;
    keepalive_timeout 65;
    #监听afc后端端口,若以独立模式启动,该端口号与quality端口号相同
    upstream afcenterapp {
        server 127.0.0.1:28083;
    }
    #监听quality后端端口
    upstream qualityapp {
        server 127.0.0.1:28091;
    }

    server {
        #基座地址组成
        listen 80;

        client_max_body_size 20M;
        add_header X-Content-Type-Options nosniff;
        add_header X-XSS-Protection "1";
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-Permitted-Cross-Domain-Policies "master-only";
        add_header X-Download-Options noopen;
        add_header Content-Security-Policy "script-src * 'unsafe-inline' 'unsafe-eval'";
        add_header Strict-Transport-Security "max-age=SECONDS";
        add_header Referrer-Policy "no-referrer" always;

        location ~/QUALITY/ {
            rewrite ^/(.*)/api/(.*)$ /api/$2 break;
            #proxy_set_header X-EOS-SourceSysKey 359e22bf398043cb866a92dc1cbbd3f6;
            proxy_pass http://qualityapp;
        }

        location ^~/api/ {
            #proxy_set_header X-EOS-SourceSysKey 359e22bf398043cb866a92dc1cbbd3f6;
            proxy_pass http://afcenterapp ;
        }

        location ~/(.*)/api/ {
            rewrite ^/(.*)/api/(.*)$ /api/$2 break;
            #proxy_set_header X-EOS-SourceSysKey 359e22bf398043cb866a92dc1cbbd3f6;
            proxy_pass http://afcenterapp ;
        }

        #location ~ \.biz\.ext$ {
        #    proxy_pass http://afcenterapp;
        #
    }

    location / {
        root /介质解压到的目录;
        index index.html index.htm;
        try_files $uri /index.html;
    }

升级脚本 升级脚本从db-scripts/upgrade目录中获取

00-quaity-afc-data.sql升级脚本说明(mysql、oracle、dm、opengauss相同)

update afc_application set CODE='QUALITY' where ID='dqms-66';

DELETE FROM afc_res_group WHERE ID = 'quality-11';
DELETE FROM afc_res_group WHERE ID = 'quality-12';

INSERT INTO afc_res_group (ID, NAME, CODE, TYPES, RES_TYPE, DESCRIPTION, APP_ID, BUSINESS_OBJ_ID, TENANT_ID, CREATE_TIME, UPDATE_TIME, CREATE_USER, UPDATE_USER, SORT_NO, IS_FIXED)VALUES ('quality-11', '主数据平台变量', 'mdm_platform_vars', 'platform', 'systemVariable', null, null, null, 'sys_tenant', '2022-12-30 12:00:00', null, null, null, 1, null);
INSERT INTO afc_res_group (ID, NAME, CODE, TYPES, RES_TYPE, DESCRIPTION, APP_ID, BUSINESS_OBJ_ID, TENANT_ID, CREATE_TIME, UPDATE_TIME, CREATE_USER, UPDATE_USER, SORT_NO, IS_FIXED)VALUES ('quality-12', 'AFC变量', 'afc_platform_vars', 'platform', 'systemVariable', null, null, null, 'sys_tenant', '2022-12-30 12:00:00', null, null, null, 1, null);

DELETE FROM afc_system_variable WHERE RES_GROUP_ID = 'quality-11';
DELETE FROM afc_system_variable WHERE RES_GROUP_ID = 'quality-12';


INSERT INTO afc_system_variable (ID, CODE, NAME, VALUE, RES_GROUP_ID, IS_ENCRYPT, DESCRIPTION, SOURCE, CREATE_USER, UPDATE_USER, TENANT_ID, CREATE_TIME, UPDATE_TIME, TYPES, APP_ID)VALUES ('quality-11', 'mdm.server.url', 'mdm_server_url', 'http://10.15.15.130:29898', 'quality-11', '0', null, null, null, null, 'sys_tenant', '2022-12-30 12:00:00', null, 'platform', null);
INSERT INTO afc_system_variable (ID, CODE, NAME, VALUE, RES_GROUP_ID, IS_ENCRYPT, DESCRIPTION, SOURCE, CREATE_USER, UPDATE_USER, TENANT_ID, CREATE_TIME, UPDATE_TIME, TYPES, APP_ID)VALUES('quality-12', 'mdm.server.token', 'mdm_server_token', '501143620fac471bb1ec2840e09f091d', 'quality-11', '0', null, null, null, null, 'sys_tenant', '2022-12-30 12:00:00', null, 'platform', null);
INSERT INTO afc_system_variable (ID, CODE, NAME, VALUE, RES_GROUP_ID, IS_ENCRYPT, DESCRIPTION, SOURCE, CREATE_USER, UPDATE_USER, TENANT_ID, CREATE_TIME, UPDATE_TIME, TYPES, APP_ID)VALUES('quality-13', 'mdm.frequency.name', 'mdm_frequency_name', 'mdm_frequency', 'quality-11', '0', null, null, null, null, 'sys_tenant','2022-12-30 12:00:00' , null, 'platform', null);
INSERT INTO afc_system_variable (ID, CODE, NAME, VALUE, RES_GROUP_ID, IS_ENCRYPT, DESCRIPTION, SOURCE, CREATE_USER, UPDATE_USER, TENANT_ID, CREATE_TIME, UPDATE_TIME, TYPES, APP_ID)VALUES('quality-14', 'mdm.index.id', 'mdm_index_id', '775617973328220160', 'quality-11', '0', null, null, null, null, 'sys_tenant', '2022-12-30 12:00:00', null, 'platform', null);
INSERT INTO afc_system_variable (ID, CODE, NAME, VALUE, RES_GROUP_ID, IS_ENCRYPT, DESCRIPTION, SOURCE, CREATE_USER, UPDATE_USER, TENANT_ID, CREATE_TIME, UPDATE_TIME, TYPES, APP_ID)VALUES('quality-15', 'mdm.datasource.id', 'mdm_datasource_id', '775620198016421888', 'quality-11', '0', null, null, null, null, 'sys_tenant','2022-12-30 12:00:00' , null, 'platform', null);
INSERT INTO afc_system_variable (ID, CODE, NAME, VALUE, RES_GROUP_ID, IS_ENCRYPT, DESCRIPTION, SOURCE, CREATE_USER, UPDATE_USER, TENANT_ID, CREATE_TIME, UPDATE_TIME, TYPES, APP_ID)VALUES('quality-16', 'mdm.output.datasource.id', 'mdm_output_datasource_id', '775874119687409664', 'quality-11', '0', null, null, null, null, 'sys_tenant', '2022-12-30 12:00:00', null, 'platform', null);
INSERT INTO afc_system_variable (ID, CODE, NAME, VALUE, RES_GROUP_ID, IS_ENCRYPT, DESCRIPTION, SOURCE, CREATE_USER, UPDATE_USER, TENANT_ID, CREATE_TIME, UPDATE_TIME, TYPES, APP_ID)VALUES('quality-17', 'mdm.output.datasource.databaseName', 'mdm_output_datasource_databaseName', 'dqms_result_store', 'quality-11', '0', null, null, null, null, 'sys_tenant', '2022-12-30 12:00:00', null, 'platform', null);
INSERT INTO afc_system_variable (ID, CODE, NAME, VALUE, RES_GROUP_ID, IS_ENCRYPT, DESCRIPTION, SOURCE, CREATE_USER, UPDATE_USER, TENANT_ID, CREATE_TIME, UPDATE_TIME, TYPES, APP_ID)VALUES('quality-18', 'afc.server.url', 'afc_server_url', 'http://10.15.15.136:28085', 'quality-12', '0', null, null, null, null, 'sys_tenant', '2022-12-30 12:00:00', null, 'platform', null);
INSERT INTO afc_system_variable (ID, CODE, NAME, VALUE, RES_GROUP_ID, IS_ENCRYPT, DESCRIPTION, SOURCE, CREATE_USER, UPDATE_USER, TENANT_ID, CREATE_TIME, UPDATE_TIME, TYPES, APP_ID)VALUES('quality-19', 'afc.server.token', 'afc_server_token', 'fe98f2cbf76444169ef209d2f59a9967', 'quality-12', '0', null, null, null, null, 'sys_tenant', '2022-12-30 12:00:00', null, 'platform', null);

-- afc_res_group
INSERT INTO afc_res_group (ID, NAME, CODE, TYPES, RES_TYPE, DESCRIPTION, APP_ID, BUSINESS_OBJ_ID, TENANT_ID, CREATE_TIME, UPDATE_TIME, CREATE_USER, UPDATE_USER, SORT_NO, IS_FIXED) VALUES ('dqms-457', '安全审计', 'securityAudit', null, null, null, 'dqms-66', null, 'sys_tenant', '2022-12-20 14:05:49', null, 'admin', null, 9, null);

-- afc_resource
INSERT INTO afc_resource (ID, NAME, CODE, TYPES, APP_ID, RES_GROUP_ID, SUB_TYPE, DESCRIPTION, BUSINESS_OBJ_ID, CONTENT, TENANT_ID, CREATE_TIME, UPDATE_TIME, CREATE_USER, UPDATE_USER, IS_FIXED) VALUES ('dqms-221', '操作日志', 'logger', 'url', 'dqms-66', 'dqms-457', null, null, null, '{"openType":"microApp","mark":"securityAudit/logger","url":null,"params":null,"microUrl":null,"microMark":"quality","isLowOrHigh":"high","resourceCode":null,"formStatus":null,"resourceType":null,"viewType":null,"appCode":"quality","query":null,"processDefName":null,"biId":null,"biType":null,"bicode":null}', 'sys_tenant', '2022-12-20 14:09:21','2022-12-20 14:15:46', 'admin','admin', null);
INSERT INTO afc_resource (ID, NAME, CODE, TYPES, APP_ID, RES_GROUP_ID, SUB_TYPE, DESCRIPTION, BUSINESS_OBJ_ID, CONTENT, TENANT_ID, CREATE_TIME, UPDATE_TIME, CREATE_USER, UPDATE_USER, IS_FIXED) VALUES ('dqms-222', '质量评分', 'checkDataScore', 'url', 'dqms-66', 'dqms-455', null, null, null, '{"openType":"microApp","mark":"dqAnalysis/checkDataScore","url":null,"params":null,"microUrl":null,"microMark":"quality","isLowOrHigh":"high","resourceCode":null,"formStatus":null,"resourceType":null,"viewType":null,"appCode":"quality","query":null,"processDefName":null,"biId":null,"biType":null,"bicode":null}', 'sys_tenant', '2022-12-28 15:40:38', '2022-12-28 16:54:59', 'admin', 'admin', null);

-- afc_menu
INSERT INTO afc_menu (ID, NAME, CODE, RES_ID, DESCRIPTION, SORT_NO, IS_LEAF, TREE_LEVEL, SEQ, PARENT_ID, TENANT_ID, CREATE_TIME, UPDATE_TIME, CREATE_USER, UPDATE_USER, IS_FIXED, OPEN_TYPE, MENU_ICON, MENU_TYPE, BUSINESS_OBJ_ID, IS_NEW_WINDOW_OPEN) VALUES ('dqms-43', '操作日志', 'logger', 'dqms-221', null, 3, '1', null, null, 'dqms-81', 'sys_tenant', '2022-12-20 14:18:06', null, 'admin', null, null, null, 'jiandu', null, null, null);
INSERT INTO afc_menu (ID, NAME, CODE, RES_ID, DESCRIPTION, SORT_NO, IS_LEAF, TREE_LEVEL, SEQ, PARENT_ID, TENANT_ID, CREATE_TIME, UPDATE_TIME, CREATE_USER, UPDATE_USER, IS_FIXED, OPEN_TYPE, MENU_ICON, MENU_TYPE, BUSINESS_OBJ_ID, IS_NEW_WINDOW_OPEN) VALUES ('dqms-44', '质量评分', 'checkDataScore', 'dqms-222', null, 4, '1', null, null, 'dqms-369', 'sys_tenant', '2022-12-28 15:47:43', null, 'admin', null, null, null, null, null, null, null);
INSERT INTO afc_menu (ID, NAME, CODE, RES_ID, DESCRIPTION, SORT_NO, IS_LEAF, TREE_LEVEL, SEQ, PARENT_ID, TENANT_ID, CREATE_TIME, UPDATE_TIME, CREATE_USER, UPDATE_USER, IS_FIXED, OPEN_TYPE, MENU_ICON, MENU_TYPE, BUSINESS_OBJ_ID, IS_NEW_WINDOW_OPEN) VALUES ('dqms-81', '安全审计', 'securityAudit', null, null, 10, '0', null, null, 'dqms-442', 'sys_tenant', '2023-01-12 17:27:26', null, 'admin', null, null, null, 'jiandu', null, null, null);

-- afc_r_res_role
INSERT INTO afc_r_res_role (ID, RES_ID, RES_TYPE, ROLE_ID, ROLE_TYPE, BUSINESS_OBJ_ID, BUSINESS_OBJ_INST_ID, TENANT_ID, IS_FIXED) VALUES ('dqms-424', 'dqms-221', 'url', 'dqms-92', 'platform', null, null, 'sys_tenant', null);
INSERT INTO afc_r_res_role (ID, RES_ID, RES_TYPE, ROLE_ID, ROLE_TYPE, BUSINESS_OBJ_ID, BUSINESS_OBJ_INST_ID, TENANT_ID, IS_FIXED) VALUES ('dqms-423', 'dqms-222', 'url', 'dqms-92', 'platform', null, null, 'sys_tenant', null);
##新增afc资源角色

10-quality-ddl.sql升级脚本说明(mysql、oracle、dm、opengauss相同)

drop table if exists DQMS_OPERATION_LOG;
create table DQMS_OPERATION_LOG
(
    ID                   varchar(64) not null comment '操作日志ID',
    OPERATOR_ID          varchar(64) comment '操作者ID',
    OPERATOR_NAME        varchar(64) comment '操作者名称',
    OPERATE_TYPE         int comment '操作类型',
    OPERATE_DATE         datetime comment '时间',
    TARGET_TYPE          varchar(64) comment '目标类型',
    TARGET_MODEL_ID      varchar(64) comment '目标ID',
    TARGET_MODEL_NAME    varchar(64) comment '目标名称',
    MESSAGE              text comment '信息',
    TENANT_ID            varchar(64) comment '租户ID',
    primary key (ID)
);
alter table DQMS_OPERATION_LOG comment '操作日志';
alter table DQMS_OPERATION_LOG add index DQMS_OPERATION_LOG_INDEX_OPERATOR(OPERATOR_NAME);
alter table DQMS_OPERATION_LOG add index DQMS_OPERATION_LOG_INDEX_OPERATE_TYPE(OPERATE_TYPE);
alter table DQMS_OPERATION_LOG add index DQMS_OPERATION_LOG_INDEX_TARGET(TARGET_TYPE, TARGET_MODEL_ID, TARGET_MODEL_NAME);

drop table if exists DQMS_OPERATION_LOG_DETAIL;
create table DQMS_OPERATION_LOG_DETAIL
(
    ID                   varchar(64) not null comment '日志详情ID',
    OLD_DATA_JSON        text comment '旧值',
    NEW_DATA_JSON        text comment '新值',
    primary key (ID)
);

alter table DQMS_OPERATION_LOG_DETAIL comment '操作日志详情';

-----------------------------
-- 组织机构评分
-----------------------------
DROP TABLE IF EXISTS DQMS_RATING_RESULT;
CREATE TABLE DQMS_RATING_RESULT(
                                   ID BIGINT PRIMARY KEY AUTO_INCREMENT,
                                   ORG_ID BIGINT COMMENT '组织ID',
                                   ORG_NAME VARCHAR(50) COMMENT '组织名',
                                   ORG_LEVEL VARCHAR(2)  COMMENT '组织等级',
                                   PARENT_ORG_ID BIGINT  COMMENT '父组织ID',
                                   SCORE DOUBLE  COMMENT '得分',
                                   START_DATE DATETIME COMMENT'评估开始日期',
                                   END_DATE DATETIME COMMENT'评估截至日期',
                                   RATING_CYCLE VARCHAR(50) COMMENT '评分周期 年(year)、季度(quarter)、月(month)、周(week),默认月',
                                   RATING_POINT VARCHAR(50)  COMMENT'评分点 例如:2023-01',
                                   CREATE_TIME DATETIME,
                                   CREATE_USER VARCHAR(25),
                                   LAST_MODIFIER_TIME DATETIME,
                                   LAST_MODIFIER_USER VARCHAR(25)
);
-- CK_METHOD_CONFIG 新增字段
ALTER TABLE CK_METHOD_CONFIG ADD COLUMN SINK_MODE VARCHAR(64);
ALTER TABLE CK_METHOD_CONFIG ADD COLUMN DATA_FROM VARCHAR(64);

alter table ck_check_result add CHECK_RESULT TEXT comment '检核结果上传路径';