Database Migrator 是一款跨数据库迁移引擎(cross-provider migration engine),用于在数据库供应商之间迁移结构(schema)、数据与逻辑。它并非模式设计器,而是处理迁移过程中的各类兼容性问题。
主要能力
该技能处理数据类型不兼容、供应商特定 SQL 方言、外键顺序、序列与自增翻译、触发器重写以及存储过程转换。它通过行数与校验和进行验证,并生成可审计的 migration-plan.md 文件。
参考文档涵盖以下内容:schema-discovery.md 提供关系型、MongoDB、Supabase 与 PlanetScale 数据源的提取查询;type-mapping.md 提供数据类型映射(PG/MySQL/Mongo)与 SQL 函数翻译;script-generation.md 处理 DDL、序列、触发器、过程与视图翻译;data-migration.md 提供各供应商的导出、转换与导入命令;validation.md 提供行数、校验和、外键完整性、索引与抽查查询;rollback-and-downtime.md 提供回滚脚本、备份/恢复与停机时间估算;migration-plan-template.md 提供完整的 migration-plan.md 输出模板;edge-cases.md 覆盖大表、有损映射、文档扁平化、多模式与质量检查清单。
支持的迁移路径与复杂度
支持的源/目标组合为 PostgreSQL、MySQL、Supabase(Postgres)、PlanetScale(MySQL)与 MongoDB,可任意方向迁移。
复杂度分级:低——相同底层引擎(例如 Postgres 到 Supabase),主要涉及连接与权限变更;中——同范式不同方言(例如 Postgres 到 MySQL),需要类型映射与方言翻译;中高——不同方言加供应商约束(例如 PlanetScale 没有数据库级外键);高——范式转换(例如关系型到文档型),需要重新设计模式,而不仅仅是翻译。
适用场景
将生产数据库从一个供应商迁移到另一个;在自托管与托管服务之间迁移;为多云或灾难恢复跨供应商复制模式;将多个数据库整合到单一供应商;在关系型与 MongoDB 之间翻译完整数据模型;在生产环境执行前生成经过验证、可审计的迁移计划。
不适用场景
从零设计新模式(应使用 database-schema-designer);在框架之间迁移应用代码(应使用 full-codebase-migrator);修改少量列或添加一个表(直接编写 ALTER 语句即可);实时复制或 CDC——该技能生成时间点脚本,而非流式管道。
工作流程
调用该技能时按以下步骤执行:
-
收集迁移参数。确定源供应商与版本、目标供应商与版本、连接方式(实时或转储文件)、模式范围(哪些模式/表)、数据迁移(仅模式或模式加数据,全量或部分)、停机容忍度、数据量、应用依赖以及输出位置(默认当前目录)。若用户已提供这些信息,则跳过提问直接进行。
-
发现源模式。提取表、列、类型、默认值、约束、索引、外键、触发器、过程、函数、视图、序列、枚举与行数。对于 MongoDB,扫描集合以推断模式。对于 Supabase,还需提取 RLS 策略、扩展与发布。参见 references/schema-discovery.md。
-
映射数据类型。将每个源类型翻译为最佳目标类型,并标记有损或精度变化的转换。翻译供应商特定 SQL 函数。参见 references/type-mapping.md。
-
生成模式脚本。通过拓扑排序解决表创建顺序(延迟循环外键)。生成 DDL,翻译序列/自增,重写触发器与存储过程,翻译视图。参见 references/script-generation.md。
-
生成数据迁移脚本。为源与目标供应商生成导出、转换与导入命令。参见 references/data-migration.md。
-
生成验证计划。为源与目标生成行数、校验和、外键完整性、索引、触发器/过程与样本数据抽查查询。参见 references/validation.md。
-
生成回滚计划与停机时间估算。生成逆序 DROP 脚本、备份/恢复命令、应用回滚步骤,以及分阶段停机时间估算与缩减策略。参见 references/rollback-and-downtime.md。
-
生成 migration-plan.md。使用 references/migration-plan-template.md 中的模板,汇总执行摘要、范围、模式清单、类型映射、不兼容项、脚本、验证、回滚、停机时间、风险评估、检查清单、分步执行指南与所需应用变更。
-
处理边缘情况。考虑超大表、有损映射、MongoDB 文档扁平化、PlanetScale 外键变通方案、Supabase 特定事项与多模式迁移。对照质量检查清单验证计划。参见 references/edge-cases.md。
限制
该技能不用于从零设计新模式、应用代码迁移、少量列修改,也不提供实时复制或 CDC 能力。具体支持的版本、收费情况与价格信息暂未提供。