约束修复原本放在 goautomigrations.Migrate 里,而 Migrate 只被 version-local 下的 迁移文件调用——那些文件在既有库上都已应用、会被跳过,于是修复永远不执行。 线上 2026-09-16 发布后实测:服务起来了、新代码在跑,ck_collection_task_status 却仍只认旧五个状态,一点取消就会被数据库拒绝。verify.go 里早有同样的警告: 「只把模型加进 migrations.Migrate 对已有数据库无效」。 单测能过是因为测试库是新建的,GORM 按模型标签直接建出含 cancelled 的约束; 既有库拿不到。 新增 1789700000000_collection_task_cancelled.go,并把约束函数导出供其调用。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NTDbDcwbDw1TSAcE6wfh2F