关于 database-migrator
database-migrator 是用于规划跨数据库提供方迁移的技能,面向需要迁移架构、数据和数据库逻辑的团队。它处理类型与方言转换,并生成验证和回滚方案及可审计的迁移文档。
主要功能
- 01架构与数据库逻辑转换
- 02跨提供方类型映射
- 03数据导出、转换与导入脚本
- 04行数与校验和验证
- 05回滚与停机时间规划
- 06生成可审计的 migration-plan.md
适用场景
- 01在不同提供方之间迁移生产数据库
- 02为多云或灾难恢复复制架构
- 03将多个数据库整合到一个提供方
- 04规划关系型数据库到 MongoDB 的迁移
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ onewave-ai/ claude-skills --skill database-migrator安装后在 Claude Code 中输入/database-migrator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/data-migration.mdedge-cases.mdmigration-plan-template.mdrollback-and-downtime.mdschema-discovery.mdscript-generation.mdtype-mapping.mdvalidation.md详细介绍
数据库迁移器
在不同数据库提供商之间迁移架构、数据和逻辑。这是一套跨提供商迁移引擎,而非架构设计工具:它处理数据类型不兼容、提供商特定的 SQL 方言、外键顺序、序列和自增转换、触发器重写以及存储过程转换。它通过行数和校验和进行验证,并生成可审计的 migration-plan.md。
目录
- references/schema-discovery.md -- 适用于关系型数据库、MongoDB、Supabase 和 PlanetScale 的提取查询。
- references/type-mapping.md -- 数据类型映射(PG/MySQL/Mongo)和 SQL 函数转换。
- references/script-generation.md -- DDL、序列、触发器、存储过程和视图转换。
- references/data-migration.md -- 各提供商的导出、转换和导入命令。
- references/validation.md -- 行数、校验和、外键完整性、索引和抽查查询。
- references/rollback-and-downtime.md -- 回滚脚本、备份/恢复、停机时间估算。
- references/migration-plan-template.md -- 完整的 migration-plan.md 输出模板。
- references/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。