SuperAPI AI 工具集

database-migration

数据与分析

查看项目

更新于 10-16 03:13

技能介绍

用途:帮助在 Sequelize、TypeORM、Prisma 等 ORM 及不同数据库平台之间执行模式与数据迁移,并处理回滚与零停机部署。适用场景包括 ORM 切换、模式转换、跨库搬数据、回滚流程、零停机发布、数据库版本升级和数据模型重构。

主要能力:提供各 ORM 的迁移写法与命令,如 Sequelize 的 npx sequelize-cli db:migrate 与 npx sequelize-cli db:migrate:undo,TypeORM 的 npm run typeorm migration:run 与 npm run typeorm migration:revert,Prisma 的 npx prisma migrate dev --name create_users 与 npx prisma migrate deploy。涵盖加列带默认值、零停机重命名列(先加新列、复制数据、改应用、再删旧列)、变更列类型(多步法)、复杂数据转换(拆分地址字段等)。回滚方面给出事务式迁移与基于备份表的检查点回滚。零停机采用蓝绿式分阶段:先做向后兼容变更、双写、回填、切换读取、最后删旧列。跨库迁移按方言区分类型,如 MySQL 用 JSON、PostgreSQL 用 JSONB。

使用方式:按资料中的迁移模板编写 up/down,先在预发环境测试,再执行迁移命令;参考资料含 references/orm-switching.md、references/schema-migration.md、references/data-transformation.md、references/rollback-strategies.md,以及 assets/schema-migration-template.sql、assets/data-migration-script.py、scripts/test-migration.sh。

限制与注意:每个 up() 都应配 down(),迁移需可重复执行;先备份、用事务、拆小步、监控并记录。常见问题包括未测试回滚、无停机策略的破坏性变更、忽略 NULL、索引性能、外键约束以及一次迁移过多数据。具体收费、平台支持范围与效果暂未提供。