feat(migrations): 对齐 staging 数据库结构与生产 #1627
Reference in New Issue
Block a user
Delete Branch "feat/db-schema-alignment"
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?
问题
生产环境 vs Staging 数据库结构存在差异:
template_categories表缺少sort_order字段(生产已有)generation_tasks表缺少edit_plan_id字段(生产已有,曾在 migration 011 中被删除)修复
Migration 061
template_categories添加sort_order列(Integer, NOT NULL, default 0)Migration 062
generation_tasks添加edit_plan_id列(String(36), nullable, 带索引)Model 更新
TemplateCategoryModel增加sort_order字段GenerationTaskModel增加edit_plan_id字段部署后需执行
alembic upgrade head应用 migration。【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
ix_generation_tasks_edit_plan_id_2,而 Model 定义中使用了index=True,SQLAlchemy 会自动生成默认索引名ix_generation_tasks_edit_plan_id。这种不一致会导致 Alembic autogenerate 检测到差异,可能会在后续迁移中错误地尝试创建重复索引或删除现有索引,导致数据库状态混乱。ix_generation_tasks_edit_plan_id(如果生产环境确实存在该名称的残留索引,应先清理),或者在 Model 中显式指定Index(name='ix_generation_tasks_edit_plan_id_2', 'edit_plan_id')以保持一致。建议优先使用标准命名ix_generation_tasks_edit_plan_id。💡 改进建议(不阻塞合并)
Create Date均为2026-09-02,这看起来像是未来的日期,可能是笔误。建议修正为当前日期,以免造成版本时间线混淆。✅ 良好实践
sort_order时,正确使用了server_default="0",保证了现有数据的兼容性,避免了全表更新。🤖 由 AI 代码审查机器人自动生成 | 2026-09-02 07:12:25 | 模型:
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #1627 已关闭或合并,对应的预览环境已被清理。