|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| compare_schema.py | ||
| online_schema_upgrade.sql | ||
| schema_diff.json | ||
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_info,8 个)
均为可空、无默认值,补齐对存量数据无影响。
| 字段 | 类型 | 可空 | 说明 |
|---|---|---|---|
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 |
只读对比脚本,可重复执行复核 |
六、执行建议
- 先备份
org_info(SQL 第一节)。 - 执行第二节补字段、第三节对齐注释——这两项无数据风险。
- 第四节保持注释状态,不要在线上执行。
- 第五节在本地库执行,消除最后的长度差异。
- 用第六节语句校验结果。