管理员已确认:SYB 货运单列表中的「樂齡樂活美學館|銀髮居家熟齡悅己壯世代優雅生活」应命中后台已启用店铺并正常导入。实际发现页把它标为“新发现”,同步跳过。
new
sybshop.Normalize
DiscoverShops
syb_shop.normalized_name
normalized_name
Normalize(display_name)
server/
EnabledNames
server/app/goauto/sybshop
ReconcileNormalizedNames
1787983900000
go test -count=1 ./app/goauto/sybshop ./cmd/migrate/migration/version-local
1ac50064bd61c49b21a72bb7866817188aee0401
be8bb1a263cb944ce923e717e119e8f295c4c073
docs/12-syb-erp-interface.md
harness.py sync
本地迁移会写入 syb_shop.normalized_name。代码已准备好,但尚未执行本地迁移或重启服务,等待管理员明确确认。执行前会先报告精确影响行数;线上环境须单独授权。
本地迁移已获管理员授权并于 2026-09-04 10:56 执行成功。版本 1787983900000 已写入;事务回填了 3 条存活店铺匹配键,目标店铺 id=2 保持启用, ormalized_name 已从全角竖线规范为半角 |。执行后只读核验:目标记录存在且迁移版本记录数为 1。未重启服务,未改显示名称、启用状态、SYB 商品、任务或订单。
No dependencies set.
The note is not visible to the blocked user.
需求摘要
管理员已确认:SYB 货运单列表中的「樂齡樂活美學館|銀髮居家熟齡悅己壯世代優雅生活」应命中后台已启用店铺并正常导入。实际发现页把它标为“新发现”,同步跳过。
当前事实与根因
new。sybshop.Normalize(首尾空白、全半角、大小写)后的键一致。DiscoverShops以数据库syb_shop.normalized_name建映射,故可判定该历史记录的存储键未按当前规则标准化,导致发现与同步过滤均无法命中。目标 / 非目标
normalized_name回填机制;启动/迁移后使现存店铺按Normalize(display_name)匹配;补齐回归测试。影响与设计
server/;数据库既有数据修复。normalized_name与Normalize(display_name)不同且不存在规范化键冲突的存活店铺;若存在冲突,启动必须明确失败并保留数据,不静默合并或删除。写路径继续保持现有标准化逻辑。验收
EnabledNames与DiscoverShops均命中同一标准化键。验证与文档
依赖与并行
server/app/goauto/sybshop文件的工作并行。实现与验证(待验收)
ReconcileNormalizedNames:只处理存活 SYB 店铺,按Normalize(display_name)回填;先检测目标键冲突,冲突即事务失败;用临时唯一键支持历史键交换;重复执行无改动。1787983900000,在同一事务中执行回填并写入迁移版本。go test -count=1 ./app/goauto/sybshop ./cmd/migrate/migration/version-local通过。1ac50064bd61c49b21a72bb7866817188aee0401。be8bb1a263cb944ce923e717e119e8f295c4c073。主工作区docs/12-syb-erp-interface.md有既有未提交改动,harness.py sync为保护该文件停止;未覆盖该改动。干净工作树的同步与检查已验证可读取新 Wiki。待执行的高风险步骤
本地迁移会写入
syb_shop.normalized_name。代码已准备好,但尚未执行本地迁移或重启服务,等待管理员明确确认。执行前会先报告精确影响行数;线上环境须单独授权。本地迁移已获管理员授权并于 2026-09-04 10:56 执行成功。版本 1787983900000 已写入;事务回填了 3 条存活店铺匹配键,目标店铺 id=2 保持启用,
ormalized_name 已从全角竖线规范为半角 |。执行后只读核验:目标记录存在且迁移版本记录数为 1。未重启服务,未改显示名称、启用状态、SYB 商品、任务或订单。