safety-eval-service/docs/db-diff
huwei 3ec4e15e6b 安评报告修改 2026-08-11 18:02:35 +08:00
..
README.md 安评报告修改 2026-08-11 18:02:35 +08:00
compare_schema.py 安评报告修改 2026-08-11 18:02:35 +08:00
online_schema_upgrade.sql 安评报告修改 2026-08-11 18:02:35 +08:00
schema_diff.json 安评报告修改 2026-08-11 18:02:35 +08:00

README.md

本地库 vs 线上库 结构差异分析报告

项目 信息
本地库 192.168.20.100:33080 / safety-eval-service
线上库 nlb-kd2xz70qhllfet2koj.cn-beijing.nlb.aliyuncsslb.com:33068 / safety-eval-service
分析时间 2026-08-11
执行动作 SELECT information_schema 只读查询,未对线上做任何变更

一、总体结论

检查项 结果
本地表数 / 线上表数 60 / 60
线上缺表 0
线上多表 0
线上缺字段 8(全部集中在 org_info
线上多字段 0
字段定义不一致 3
线上缺索引 0

整体差异很小,核心问题是 org_info 表缺少一批「原型 V1.6」新增字段。

二、线上缺失字段(org_info8 个)

均为可空、无默认值,补齐对存量数据无影响。

字段 类型 可空 说明
qualification_cert_no varchar(100) 资质证书编号
fax varchar(20) 传真
contact_name varchar(50) 联系人(由 contact_name_phone 拆分)
contact_phone varchar(20) 联系电话(由 contact_name_phone 拆分)
contact_name_phone varchar(100) 联系人及电话
fixed_assets_total decimal(16,4) 固定资产总值(万元)
apply_business_scope varchar(500) 拟申请的法定安全评价业务范围
org_intro text 单位基本情况介绍

注:本地同时存在拆分后的 contact_name / contact_phone 与合并的 contact_name_phone,属于过渡期并存。是否三者全部上线,建议结合业务代码确认后再定。

三、字段定义不一致3 处)

1. eval_process_control.reviewer_signature_task_status — 可安全对齐

仅注释文案不同,类型 varchar(64)NOT NULL、默认值 non_dispatched 均一致。

  • 线上:审核签字任务状态 ...
  • 本地:过程控制审核签字任务状态 ...

2 & 3. org_info 两个行业类别字段 — 存在数据截断风险,不建议改线上

字段 线上 本地
safety_industry_category_code varchar(512) varchar(32)
safety_industry_category_name varchar(1024) varchar(50)

线上字段比本地更宽,而非缺失或落后。实测线上存量数据:

字段 最大长度 超出本地长度的行数
safety_industry_category_code 110 2 行 > 32
safety_industry_category_name 57 1 行 > 50

本地对应数据最大长度仅 25 / 14说明本地只是从未触发过加宽需求。

结论:若按本地定义收窄线上,会直接截断线上真实数据,造成不可逆丢失。 正确做法是反向对齐——把本地改宽到与线上一致,相关语句已在 SQL 文件第五节给出。

四、索引

线上不存在缺失索引,无需处理。

五、交付物

文件 用途
online_schema_upgrade.sql 升级 SQL含备份、执行、校验风险项已注释隔离
schema_diff.json 结构化差异明细
compare_schema.py 只读对比脚本,可重复执行复核

六、执行建议

  1. 先备份 org_infoSQL 第一节)。
  2. 执行第二节补字段、第三节对齐注释——这两项无数据风险。
  3. 第四节保持注释状态,不要在线上执行
  4. 第五节在本地库执行,消除最后的长度差异。
  5. 用第六节语句校验结果。