diff --git a/docs/task/144-修复商品目录迁移.md b/docs/task/144-修复商品目录迁移.md index 8c72195..a1d56ec 100644 --- a/docs/task/144-修复商品目录迁移.md +++ b/docs/task/144-修复商品目录迁移.md @@ -16,17 +16,19 @@ ## 最终方案 -追加 MySQL schema v10,不修改已经发布的 v8/v9 版本记录。v10 重放现有的幂等 v8 -修复逻辑:逐项检查并补齐 SKU 身份、规格键、字段来源列、导入统计列和唯一索引, -回填语句只处理空值。随后同时执行 v8、v9 结构自检,全部通过后才记录 v10。 +追加 MySQL schema v10,不修改已经发布的 v8/v9 版本记录。v10 重放现有的幂等 v8、 +v9 修复逻辑:逐项检查并补齐 SKU 身份、规格键、字段来源列、导入统计列、商品图片/ +店铺字段、约束和唯一索引,回填语句只处理空值。随后同时执行 v8、v9 结构自检, +全部通过后才记录 v10。首次实现只重放 v8,实际启动继续暴露 v9 人工标记约束缺失, +因此在不改变数据边界的前提下补充重放 v9。 -新增两个真实 MySQL 集成场景:一是构造“已记录 v9、缺少两个来源字段”的异常状态, -核对自动修复、业务字段保持和版本幂等;二是模拟 v10 DDL 已提交但版本尚未记录的 -中断状态,核对重启后继续收敛。实现与建单方案一致。 +新增两个真实 MySQL 集成场景:一是构造“已记录 v9、缺少两个来源字段和 v9 人工 +标记约束”的异常状态,核对自动修复、业务字段保持和版本幂等;二是模拟 v10 DDL +已提交但版本尚未记录的中断状态,核对重启后继续收敛。 ## 改了哪些 -- `admin/repository/mysql_db.go`:schema 版本提升到 v10,增加兼容修复和完整形状自检。 +- `admin/repository/mysql_db.go`:schema 版本提升到 v10,重放 v8/v9 并增加完整形状自检。 - `admin/repository/mysql_db_integration_test.go`:增加异常 v9 修复和 v10 中断重跑用例。 - `docs/admin/03-data-model.md`:记录 v10 的用途、数据边界和版本记录规则。 - `docs/admin/10-商品目录接入接口.md`:补充 v10 发布、修复与回退说明。 @@ -36,6 +38,7 @@ | 验收标准 | 结果 | |---|---| | 已记录 v8/v9 但缺少来源字段时执行 v10 自动补齐 | 通过(集成用例已覆盖) | +| 已记录 v9 但缺少图片/店铺人工标记约束时自动补齐 | 通过(集成用例已覆盖) | | 保留真实 SKU ID、规格、颜色尺码、人工标志和商品关联 | 通过(集成用例逐字段核对) | | 来源和观测时间只对空 JSON 安全回填 | 通过 | | 完整 v8/v9 升级 v10 无业务副作用 | 通过(幂等重跑覆盖) | @@ -52,3 +55,4 @@ ## 相关提交 - `fef97cf` 修复不完整的商品目录迁移 +- `9671202` 补齐不完整的 v9 商品约束