fix(services):MySQL 建表同步遇到并发 DDL 冲突时重试,修正式服 0.2.9 home 启动 panic
业务容器里 gateway/home/api/mcp/timer 同时拉起,echomeet_record 由 home 的 echomeet 模块与 api 模块
同时 AutoMigrate。AutoMigrate 是「查列在不在 → ALTER」两步非原子,两边都查到缺列、都去加,
后到者报 1060 Duplicate column,模块初始化失败 panic,home 的接口全部 code:11。
2026-09-26 正式服发 0.2.9(新加 computeuser/computedevices 两列)时 api 抢先加成功,home 挂了几分钟,
已回滚 0.2.8 恢复。测试服当时是先后顺序错开才没撞上。
CreateTable 遇到 1050/1060/1061(对方已建好表/列/索引)时等 0.5s/1s 再同步,最多 3 次;
其它错误照旧直接返回。postgres 的 CreateTable 表已存在即跳过、不加列,没有这个竞态,未改。
验证:go build/vet 通过,TestIsConcurrentDDLConflict 通过。
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|