用户于 2026-08-23 要求:把 D:\chengma\cmautobuy\admin 线上 MySQL 中的蝦皮商品和 PDD 商品同步到 GoAuto 本地 MySQL 8。用户明确确认:目标库已存在相同 goods_id 或 shopee_item_id 时,以线上 cmautobuy 数据覆盖本机商品档案。
D:\chengma\cmautobuy\admin
goods_id
shopee_item_id
实现一个独立、幂等、默认只读预检的命令行导入工具:
pdd_product
shopee_product
--dry-run
--apply
spec_mappings
information_schema
server/
web/
android/
title
shop_name
skus_json
specs_json
pending
collected
active
NULL
disabled
shopee_skus
is_manual=1
pdd_goods_id
pdd_product.goods_id
pdd_product_id
config.yaml
无 Web/Android 页面变化,不需要 QuantUX/HTML。采用本工单中的数据映射、覆盖、事务和安全设计作为实施门禁。
需要更新 Wiki:记录离线导入入口、配置来源、dry-run/apply 命令、覆盖规则、非目标、安全边界和验证方式;再通过 harness 同步核心镜像。
已提交并推送:
166adc6 feat(#70): import cmautobuy product catalog
Task-70-从-cmautobuy-线上库导入-PDD-与蝦皮商品
a37f18d06e86f6a4c4ac8a8e7c46d9b21e6b73b5
cmd/import-cmautobuy-products
go test ./app/goauto/cmautobuyimport ./cmd/import-cmautobuy-products
go test ./app/goauto/...
.\scripts\verify.ps1 -Component server
*_test
python dev_scripts/harness.py check --strict
sync --check
gitea.env
harness.py archive
没有运行 --apply,没有覆盖 GoAuto 本地正式商品表。按照工单门禁,需用户查看上述精确影响后再次明确确认,且 apply 前先备份目标商品表。
用户已明确确认执行高风险 --apply。执行前已备份目标 pdd_product、shopee_product,来源 cmautobuy 线上库全程使用只读一致性事务,目标使用单事务提交。
D:\OPC\goauto-backups\cmautobuy-import-20260824-000239\goauto-products-before.sql
C30C6C52FF2094032BE7F1E03F7B4673C4F1A9AB01DD189958C42156E1BF41D9
166adc6fa84fc51457169426a1590a47a2b6f2b0
1f2478a
641d63aa97af4c512b10db4605561e31f1ef7825
e0f06d2c6fd2a3d954e7c3a96cae966f977fb3a5
harness.py sync --check
工单保持待验收,不关闭。
fb055535a554a1ef9f30e27e6e6ee7cf3266091d
e13b2092d60cec8bfa1a3dec21e858fdb9817ed5
a439b0b
python dev_scripts/harness.py sync --check
按 DevHarness 流程关闭本单。
No dependencies set.
The note is not visible to the blocked user.
原始需求摘要
用户于 2026-08-23 要求:把
D:\chengma\cmautobuy\admin线上 MySQL 中的蝦皮商品和 PDD 商品同步到 GoAuto 本地 MySQL 8。用户明确确认:目标库已存在相同goods_id或shopee_item_id时,以线上 cmautobuy 数据覆盖本机商品档案。目标
实现一个独立、幂等、默认只读预检的命令行导入工具:
pdd_product与shopee_product数据契约。--dry-run,输出新增、覆盖、冲突、跳过和无法转换的非敏感汇总。--apply才在 GoAuto 本地 MySQL 单事务写入;目标同键记录按用户确认覆盖。非目标
spec_mappings/ AI 决策;旧项目组合 SKU 映射与 GoAuto 规格值映射语义不同,避免静默买错。--apply。前置依赖与并行关系
information_schema只读检查共同确认,不能只假定部署库已升级到仓库最新版本。子项目影响
server/:新增独立导入命令、转换和事务写入逻辑、单元/集成测试。web/、android/、共享 Agent API 和现有表结构。已确认覆盖与转换规则
PDD 商品
goods_id。title、shop_name、URL 和可转换规格以来源覆盖本机。skus_json转为 GoAuto 通用specs_json:按维度顺序聚合唯一规格值;角色为 color/size/other;可选择状态取该值是否存在任一可用组合。pending并报告,禁止猜最低或最高价。collected且规格转换无冲突时目标状态为active;其余为pending。来源软删除记录默认跳过。NULL;覆盖现有记录时清为NULL,体现“来源覆盖”。disabled时保留disabled。蝦皮商品
goods_id→ 目标shopee_item_id。NULL,币种使用 GoAuto 系统配置,缺省 TWD。shopee_skus的唯一颜色/尺码:解析成功字段写入对应维度;is_manual=1标为 manual,其他标为 import;解析失败或空字段不猜测并报告。pdd_goods_id通过目标pdd_product.goods_id换算为数字pdd_product_id;来源为空时清除本机关联,来源目标无效/缺失时本条标为冲突且不静默关联。安全和事务
config.yaml/ 安全环境配置。验收标准
设计证据
无 Web/Android 页面变化,不需要 QuantUX/HTML。采用本工单中的数据映射、覆盖、事务和安全设计作为实施门禁。
风险与回退
文档影响
需要更新 Wiki:记录离线导入入口、配置来源、dry-run/apply 命令、覆盖规则、非目标、安全边界和验证方式;再通过 harness 同步核心镜像。
实施完成,等待 dry-run / apply 门禁确认
已提交并推送:
166adc6 feat(#70): import cmautobuy product catalogTask-70-从-cmautobuy-线上库导入-PDD-与蝦皮商品a37f18d06e86f6a4c4ac8a8e7c46d9b21e6b73b5实现
cmd/import-cmautobuy-products。真实 dry-run(未写数据库)
验证
go test ./app/goauto/cmautobuyimport ./cmd/import-cmautobuy-products:通过。go test ./app/goauto/...:通过。.\scripts\verify.ps1 -Component server:通过(全量 Go test + build)。*_test:dry-run 不写、覆盖、关联、提交前校验通过;测试库已删除。python dev_scripts/harness.py check --strict:通过。sync --check通过。gitea.envToken 失效导致harness.py archive返回 401;按 MCP 优先规则使用 Gitea MCP 创建并回读归档,未修改或输出 Token。未执行
没有运行
--apply,没有覆盖 GoAuto 本地正式商品表。按照工单门禁,需用户查看上述精确影响后再次明确确认,且 apply 前先备份目标商品表。正式导入完成(2026-08-24)
用户已明确确认执行高风险
--apply。执行前已备份目标pdd_product、shopee_product,来源 cmautobuy 线上库全程使用只读一致性事务,目标使用单事务提交。正式写入结果
导入后核验
恢复与证据
D:\OPC\goauto-backups\cmautobuy-import-20260824-000239\goauto-products-before.sqlC30C6C52FF2094032BE7F1E03F7B4673C4F1A9AB01DD189958C42156E1BF41D9166adc6fa84fc51457169426a1590a47a2b6f2b01f2478a641d63aa97af4c512b10db4605561e31f1ef7825e0f06d2c6fd2a3d954e7c3a96cae966f977fb3a5harness.py sync --check:通过。工单保持待验收,不关闭。
用户验收通过
fb055535a554a1ef9f30e27e6e6ee7cf3266091de13b2092d60cec8bfa1a3dec21e858fdb9817ed5a439b0bpython dev_scripts/harness.py sync --check:通过。按 DevHarness 流程关闭本单。