本地库与线上库结构差异分析报告
- 生成时间:2026-07-29
- 本地库(基准):
192.168.20.100:33080 / safety-eval-service(60 张表)
- 线上库(目标):
nlb-kd2xz70qhllfet2koj.cn-beijing.nlb.aliyuncsslb.com:33068 / safety-eval-service(35 张表)
- 对比方式:MySQL MCP 直连两库,基于
information_schema.COLUMNS 逐表逐字段比对(字段名/类型/长度/可空/默认值)
一、表级差异
1.1 本地有、线上缺失的表(26 张)→ 需在线上新建
| 分类 |
表名 |
| 安评项目(20张) |
eval_customer、eval_project、eval_risk_analysis、eval_risk_participant、eval_contract、eval_team、eval_project_member、eval_project_doc、eval_project_process_waring、eval_project_waring、eval_survey、eval_survey_attach、eval_report_draft、eval_internal_review、eval_tech_review、eval_process_control、eval_review_item、eval_sign_task、eval_report、eval_report_spotcheck |
| 监督检查(2张) |
insp_notice、insp_notice_material |
| 机构画像(1张) |
org_profile_score |
| 资质现场核查(2张) |
qual_on_site_review、qual_on_site_review_file |
| 消息中心(1张) |
safety_message |
1.2 线上有、本地没有的表(1 张)→ 按规则不删除,仅记录
qual_discipline_basic_majors(本地对应表疑为 basic_discipline_major,请人工确认是否为改名迁移)
1.3 两边都存在且结构完全一致的表(25 张)
account、basic_discipline_major、filestorage、gen_table、gen_table_column、industry_professional_standards、new_flyway_schema_history、org_business_scope_device_ref、org_department、org_personnel_change、org_qualification、org_resign_apply、qual_filing_change_detail、qual_filing_commitment、qual_filing_commitment_change、qual_filing_equipment、qual_filing_equipment_change、qual_filing_material、qual_filing_material_change、qual_filing_review、qual_filing_personnel、qual_filing_personnel_change 等(其中 qual_filing_personnel、qual_filing_personnel_change 经逐字段复核确认一致)。
二、共有表的字段差异(12 张有差异)
2.1 本地新增字段(线上缺失,需 ADD COLUMN,安全)
| 表 |
字段 |
类型 |
说明 |
org_position |
gbs_role_id |
bigint |
关联GBS角色ID |
org_position |
gbs_role_code |
varchar(64) |
关联GBS角色编码 |
org_position |
gbs_role_name |
varchar(100) |
关联GBS角色名称 |
org_personnel_cert |
cert_level |
varchar(50) |
证书等级 |
qual_filing_personnel_cert |
cert_level |
varchar(50) |
证书等级 |
qual_filing_personnel_cert_change |
cert_level |
varchar(128) |
证书等级 |
wps_doc |
project_id |
bigint |
项目id |
wps_doc_version |
project_id |
bigint |
项目id |
2.2 字段类型/长度不一致(线上比本地"宽",改窄有截断风险,脚本中已注释)
| 表 |
字段 |
线上 |
本地 |
风险 |
org_equipment |
industry_code |
varchar(100) |
varchar(32) |
收窄截断 |
org_info |
safety_industry_category_code |
varchar(1024) |
varchar(32) |
收窄截断 |
org_personnel |
proof_material_url |
varchar(5000) |
varchar(2000) |
收窄截断 |
org_position |
duty_desc |
varchar(600) |
varchar(500) |
收窄截断 |
org_position |
remarks |
varchar(600) |
varchar(255) |
收窄截断 |
qual_filing |
business_scope |
varchar(1024) |
varchar(1000) |
收窄截断 |
qual_filing |
attachment_url |
text |
varchar(500) |
收窄截断 |
qual_filing_change |
business_scope |
varchar(1024) |
varchar(1000) |
收窄截断 |
qual_filing_expert |
certificate |
text |
varchar(500) |
收窄截断 |
2.3 线上独有字段(本地已移除/改名,按规则不删除,仅记录)
| 表 |
线上独有字段 |
说明 |
org_equipment |
instrument_type_code varchar(32) |
本地已移除 |
org_personnel_cert |
cert_type_name varchar(50) |
本地改用 cert_level |
qual_filing_personnel_cert |
cert_type_name varchar(50) |
本地改用 cert_level |
qual_filing_personnel_cert_change |
cert_type_name varchar(50) |
本地改用 cert_level |
三、更新脚本文件(需人工确认后执行)
| 文件 |
内容 |
风险 |
20260729_prod_update_part1_create_tables.sql |
新建 26 张缺失表(CREATE TABLE IF NOT EXISTS,幂等) |
无(纯新增) |
20260729_prod_update_part2_alter_tables.sql A区 |
8 个安全新增字段 |
低(纯新增,勿重复执行) |
20260729_prod_update_part2_alter_tables.sql B区 |
9 个长度收窄 MODIFY(已全部注释) |
高(截断风险,附检查SQL) |
20260729_prod_update_part2_alter_tables.sql C区 |
线上独有表/字段记录 |
不执行任何 DROP |
四、执行建议
- 先备份线上库:
mysqldump --no-data(结构)+ 涉及表的数据备份。
- 执行 part1(建表,幂等可重跑)。
- 执行 part2 A区(新增字段,只执行一次)。
- B区逐条先跑注释中的检查 SQL,确认
COUNT(*)=0 再放开对应 MODIFY;任何一条有数据超长则不要执行该条。
- C区不执行任何操作;
qual_discipline_basic_majors 是否废弃请业务侧确认。
- 全程未包含任何
DROP TABLE / DROP COLUMN / DELETE 语句。