用途:当用户提出数据库迁移、生成 migration、schema 变更或数据库升级需求时激活,帮助识别框架、分析变更并产出迁移脚本。
主要能力:扫描项目文件判断 ORM/迁移框架,如 alembic.ini 或 alembic/ 对应 Alembic,prisma/schema.prisma 对应 Prisma,pom.xml 含 flyway 对应 Flyway,manage.py 与 settings.py 对应 Django,Gemfile 与 db/migrate/ 对应 Rails。随后对比 models 定义与迁移历史,识别新增、修改、删除的表和字段,检测索引、约束、外键变更,并按框架生成迁移文件及回滚脚本,同时评估大表 DDL 锁表、数据迁移需求和向后兼容性。
使用方式:按框架生成脚本,例如 Prisma 默认仅生成不执行,使用 npx prisma migrate dev --name add-email-to-users --create-only,检查 SQL、连接目标和备份后再由用户确认执行;开发环境用 npx prisma migrate dev,生产环境用 npx prisma migrate deploy。Rails 可用 rails db:migrate、rails db:rollback、rails db:rollback STEP=3。Django 中 unique=True 已生成唯一约束和索引,不应重复创建索引。
限制与注意:默认只生成和审查迁移,执行前需确认环境、数据库连接、备份和维护窗口;可逆迁移提供 downgrade,不支持时需明确快照恢复或前向修复;大表变更考虑在线 DDL 避免锁表;数据迁移与 schema 变更分开处理;迁移应由框架记录版本并安全重试,不应假设可任意重复执行;先在 staging 验证再上生产;删除列或表前确保应用代码已移除引用。