用途:帮助开发者在不同 ORM(Sequelize、TypeORM、Prisma)和数据库平台之间执行模式与数据迁移,并处理回滚与零停机部署。
主要能力:提供各 ORM 的迁移文件写法与命令,如 Sequelize 的 npx sequelize-cli db:migrate 与 db:migrate:undo,TypeORM 的 npm run typeorm migration:run 与 migration:revert,Prisma 的 npx prisma migrate dev --name create_users 与 npx prisma migrate deploy。涵盖加列带默认值、重命名列、修改列类型等模式转换,以及地址字符串拆分等复杂数据转换。回滚方面给出事务式迁移与基于备份表的检查点回滚。零停机部分采用蓝绿式分阶段:先加向后兼容的新列,再双写、回填、切换读取、最后删除旧列。跨库迁移按方言区分类型,如 MySQL 用 JSON、PostgreSQL 用 JSONB。
使用方式:按资料中的迁移模板编写 up/down,先在 staging 测试,再执行对应 ORM 命令;大表变更采用多步增量方式。
适用场景:ORM 切换、模式转换、库间数据搬迁、回滚流程实现、零停机部署、数据库版本升级、数据模型重构。
限制与注意:资料强调每个 up() 都应有 down()、先备份、用事务、小步增量、监控与文档化、保持幂等;常见问题包括未测试回滚、无停机策略的破坏性变更、忽略 NULL、索引性能、外键约束以及一次性迁移过多数据。具体平台支持范围与版本要求暂未提供。