用途:该技能用于在 Sequelize、TypeORM、Prisma 等 ORM 及不同数据库平台之间执行模式与数据迁移,涵盖回滚策略与零停机部署。适用场景包括 ORM 之间迁移、模式转换、数据库间数据搬迁、回滚流程实现、零停机部署、数据库版本升级和数据模型重构。
主要能力:提供各 ORM 的迁移写法示例,如 Sequelize 的 up/down 结构(运行 npx sequelize-cli db:migrate,回滚 npx sequelize-cli db:migrate:undo)、TypeORM 的 MigrationInterface(运行 npm run typeorm migration:run,回滚 npm run typeorm migration:revert)、Prisma 的 schema 与命令(生成 npx prisma migrate dev --name create_users,应用 npx prisma migrate deploy)。模式转换方面覆盖带默认值加列、零停机重命名列(加新列、复制数据、切换应用、删旧列)、大表改列类型的多步法。数据转换部分演示逐条读取并拆分字段后回写、以及 down 中重建原列。回滚策略包含事务式迁移与基于备份表的检查点回滚。零停机部分给出蓝绿部署的分阶段流程:先做向后兼容变更、双写、回填、切换读取、删除旧列。跨库迁移示例按 dialect 区分 MySQL 的 JSON 与 PostgreSQL 的 JSONB。
使用方式:按工作流分三阶段。阶段一规划与备份:迁移前做完整数据库备份或确认 PITR 设置,按表大小评估耗时与锁风险,为每个 up 脚本准备可用的 down 脚本。阶段二 Expand-Contract:先加向后兼容的新字段,再后台小批量回填,最后在代码全部切换后移除旧字段或表。阶段三验证与漂移检测:迁移后校验模式完整性,比对文件模式与数据库实际模式的差异,并将迁移集成到 CI/CD(如 GitHub Actions、GitLab CI)。检查点包括锁分析、回滚测试是否成功、迁移日志是否集中保存。
限制:资料未提供具体收费、价格、平台支持范围与效果数据;示例代码需按实际数据库方言与版本调整,大表操作与锁行为需自行评估。