feat(ci): Validate阶段增加migration编号连续性检查 #652
Reference in New Issue
Block a user
Delete Branch "feat/ci-migration-chain-validation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
最近多次出现 PR 的 migration 编号断链(down_revision 指向不存在的版本),导致 Integration Tests 全挂才发现问题,浪费 CI 资源和排查时间。
方案
在 Validate 阶段增加 migration 编号连续性静态检查,不用等数据库迁移就秒级发现断链。
新增
scripts/ci/check_migration_chain.py(175行):
alembic/versions/下所有 migration 文件revision和down_revision,验证链完整性revision: str = "001")和新格式(revision = "038_error_retry")scripts/ci/run_validate.sh:在第8步 Alembic 迁移验证前增加 8.1 静态检查
效果
migration 编号错误从 Integration Tests 阶段(分钟级)提前到 Validate 阶段(秒级),反馈更快。
验证
本地
python3 scripts/ci/check_migration_chain.py通过,47个版本链完整。🚀 预览环境已部署
b05b777ae4toec85b90155代码审查结果 - PR #652
⚠️ 问题(0个需要修改)
💡 建议(1个可选)
down_revision为空字符串时的处理逻辑down_revision被赋值为空字符串"",if down判断为假,导致down_num被置为None。这会将空字符串误判为基线(baseline)。None或具体 ID,但为了更严格地校验,建议显式检查空字符串并报错,或者确认这是符合项目预期的行为。✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好
🤖 由 AI 代码审查机器人自动生成 | 2026-07-20 20:40:27 | 模型:
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #652 已关闭或合并,对应的预览环境已被清理。