safety-eval-service/docs/db-diff/online_schema_upgrade.sql

81 lines
5.1 KiB
MySQL
Raw Normal View History

2026-08-11 18:02:35 +08:00
-- =============================================================================
-- 线上数据库结构升级 SQLsafety-eval-service
--
-- 对比基准:本地库 192.168.20.100:33080 / safety-eval-service
-- 目标库 nlb-kd2xz70qhllfet2koj.cn-beijing.nlb.aliyuncsslb.com:33068 / safety-eval-service
-- 生成时间2026-08-11
--
-- 【重要】本文件仅供人工评审,尚未在任何环境执行。
-- 执行前请务必先备份 org_info 表。
-- =============================================================================
USE `safety-eval-service`;
-- -----------------------------------------------------------------------------
-- 一、备份(强烈建议,执行 DDL 前先跑)
-- -----------------------------------------------------------------------------
-- CREATE TABLE `org_info_bak_20260811` LIKE `org_info`;
-- INSERT INTO `org_info_bak_20260811` SELECT * FROM `org_info`;
-- -----------------------------------------------------------------------------
-- 二、补齐线上缺失字段org_info共 8 个,均为原型 V1.6 新增)
-- 全部为可空且无默认值,对存量数据无影响,可安全执行。
-- -----------------------------------------------------------------------------
ALTER TABLE `org_info`
ADD COLUMN `qualification_cert_no` varchar(100) NULL DEFAULT NULL COMMENT '资质证书编号2026-08-08 原型V1.6新增,非必填)' AFTER `env`,
ADD COLUMN `fax` varchar(20) NULL DEFAULT NULL COMMENT '传真2026-08-08 原型V1.6新增)' AFTER `qualification_cert_no`,
ADD COLUMN `contact_name` varchar(50) NULL DEFAULT NULL COMMENT '联系人2026-08-08 由 contact_name_phone 拆分)' AFTER `fax`,
ADD COLUMN `contact_phone` varchar(20) NULL DEFAULT NULL COMMENT '联系电话2026-08-08 由 contact_name_phone 拆分)' AFTER `contact_name`,
ADD COLUMN `contact_name_phone` varchar(100) NULL DEFAULT NULL COMMENT '联系人及电话2026-08-08 原型V1.6新增)' AFTER `contact_phone`,
ADD COLUMN `fixed_assets_total` decimal(16,4) NULL DEFAULT NULL COMMENT '固定资产总值万元非负2026-08-08 原型V1.6新增)' AFTER `contact_name_phone`,
ADD COLUMN `apply_business_scope` varchar(500) NULL DEFAULT NULL COMMENT '拟申请的法定安全评价业务范围多选逗号分隔2026-08-08 原型V1.6新增)' AFTER `fixed_assets_total`,
ADD COLUMN `org_intro` text NULL COMMENT '单位基本情况介绍长文本2026-08-08 原型V1.6新增)' AFTER `apply_business_scope`;
-- -----------------------------------------------------------------------------
-- 三、字段注释对齐eval_process_control
-- 仅注释文案不同,类型/长度/可空性均一致,无数据风险。
-- -----------------------------------------------------------------------------
ALTER TABLE `eval_process_control`
MODIFY COLUMN `reviewer_signature_task_status` varchar(64) NOT NULL DEFAULT 'non_dispatched'
COMMENT '过程控制审核签字任务状态 dispatched 下发non_dispatched 未下发 , completed 已完成';
-- =============================================================================
-- 四、【不建议执行】org_info 两个字段的长度差异
--
-- safety_industry_category_code线上 varchar(512) 本地 varchar(32)
-- safety_industry_category_name线上 varchar(1024) 本地 varchar(50)
--
-- 线上字段比本地更宽。实测线上存量数据:
-- - code 最大长度 110其中 2 条 > 32
-- - name 最大长度 57 其中 1 条 > 50
-- 若按本地定义收窄,将直接截断线上真实数据,造成不可逆的数据丢失。
--
-- 结论:应反向以线上为准,把【本地】改宽以与线上保持一致,
-- 而不是把线上改窄。以下语句仅作留档,禁止在线上执行。
--
-- ALTER TABLE `org_info`
-- MODIFY COLUMN `safety_industry_category_code` varchar(32) NULL DEFAULT NULL COMMENT '安全生产监管行业类别编码',
-- MODIFY COLUMN `safety_industry_category_name` varchar(50) NULL DEFAULT NULL COMMENT '安全生产监管行业类别名称';
-- =============================================================================
-- =============================================================================
-- 五、建议在【本地库】执行(使本地向线上看齐,消除该项差异)
--
-- ALTER TABLE `org_info`
-- MODIFY COLUMN `safety_industry_category_code` varchar(512) NULL DEFAULT NULL COMMENT '安全生产监管行业类别编码',
-- MODIFY COLUMN `safety_industry_category_name` varchar(1024) NULL DEFAULT NULL COMMENT '安全生产监管行业类别名称';
-- =============================================================================
-- -----------------------------------------------------------------------------
-- 六、执行后校验
-- -----------------------------------------------------------------------------
-- SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_COMMENT
-- FROM information_schema.COLUMNS
-- WHERE TABLE_SCHEMA='safety-eval-service' AND TABLE_NAME='org_info'
-- ORDER BY ORDINAL_POSITION;