Files
baiyue-firstleg/output/local-schema-repair/验收记录.md
T
2026-10-20 11:33:20 +08:00

2.9 KiB
Raw Permalink Blame History

本地头程与尾程结构修复

时间:2026-10-19;目标:本机 MySQL 127.0.0.1:3306。

实际改动

数据库 新建表 已有表新增字段 已有表新增索引
baiyue_firstleg 14 6 18
baiyue_lastleg 53 97 18

包含报错表 ll_delivery_facts_changed,头程计费重确认、报关/清关和船期表,以及尾程排车、派送事实、采购和自营统计等缺失结构。

对照当前统一初始化 SQL 的建表定义复查:头程 131 张基线表、尾程 218 张基线表均已存在,基线字段无缺失。保留本地额外表;未执行整库初始化、删除、业务数据回填或远程部署。

执行前后的结构快照为 schema-before.sql、schema-after.sql。actual-changes.json 是实际结构差异;actual-incremental-review.sql 是实际增量审阅记录,已执行,不能在当前库重复执行。DDL 隐式提交,前快照仅用于审阅和恢复设计,不应直接覆盖现有库。

运行验证

重启时沿用原 Java 可执行文件、应用主类和类路径,并加载本地 Nacos、Redis、数据库与服务地址配置。原 IDE 启动的两服务进程已停止,新进程在后台运行:头程 PID 48892(9202)、尾程 PID 64060(9303)。后续需要 IDE 调试时,先停止对应后台进程,避免端口冲突。

两服务均成功输出 Started;健康检查均为 HTTP 200、status UP。从约 20:36 启动至 20:40 的观察窗口内,未发现 ERROR、BadSqlGrammarException、SQLSyntaxErrorException 或预约同步失败;尾程曾出现一次同步耗时告警,complete=true、failed=false。

通过本地统一 Gateway,既有本地验收账号登录成功。尾程订单、整车排车、排车草稿、头程入库单、指定有效客户的履约任务列表五个只读业务接口均返回 HTTP 200 / code 200。未创建、修改或删除业务单据。

这次验证为结构、服务运行和 HTTP 读取验证,未完成所有页面的人工视觉验收,也未重新执行全量业务流。

保留事项

  1. 已有尾程历史单据的 16 个新必填业务字段无法从结构本身推导真实值,按可空字段补齐,历史行保留 NULL,未伪造来源快照、清单摘要或实收数量。后续推进这些历史单据前需核对真实资料;这部分并非完整 NOT NULL 约束对齐。
  2. ll_inbound_plan.uk_ll_inbound_plan_source_order 唯一索引因历史重复来源建索引失败(Duplicate entry)。原记录完整保留;其他缺失索引已建立。对应错误与复查见 index-repair.json、schema-verification.json。
  3. 当前本地验收账号读取预约工作台汇总、船期渠道、船期模板返回 A0403 / Access denied。这三项是权限阻断,未改动账号授权,不能记作页面验收通过。详细结果见 http-smoke.json。

服务日志:firstleg-runtime.log、lastleg-runtime.log;两个标准错误日志均为空。