mcpField
D
database-migrator

database-migrator

github.com/onewave-ai数据与数据库393252 次安装1 周前更新
代码仓库

关于 database-migrator

database-migrator 是用于规划跨数据库提供方迁移的技能,面向需要迁移架构、数据和数据库逻辑的团队。它处理类型与方言转换,并生成验证和回滚方案及可审计的迁移文档。

主要功能

  1. 01架构与数据库逻辑转换
  2. 02跨提供方类型映射
  3. 03数据导出、转换与导入脚本
  4. 04行数与校验和验证
  5. 05回滚与停机时间规划
  6. 06生成可审计的 migration-plan.md

适用场景

  1. 01在不同提供方之间迁移生产数据库
  2. 02为多云或灾难恢复复制架构
  3. 03将多个数据库整合到一个提供方
  4. 04规划关系型数据库到 MongoDB 的迁移

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/onewave-ai/claude-skills --skill database-migrator

安装后在 Claude Code 中输入/database-migrator确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
data-migration.md
edge-cases.md
migration-plan-template.md
rollback-and-downtime.md
schema-discovery.md
script-generation.md
type-mapping.md
validation.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——此技能生成的是特定时间点的脚本,而非流式处理管道。

工作流

调用此技能时,请严格按照以下步骤操作。

  1. 收集迁移参数。确定:源提供商及版本;目标提供商及版本;连接方式(实时连接或转储文件);架构范围(哪些架构/表);数据迁移范围(仅架构,还是架构 + 数据;全部还是部分);可接受的停机时间;数据量;应用依赖项;以及输出位置(默认为当前目录)。如果用户已提供这些信息,则跳过提问并继续。

  2. 发现源架构。提取表、列、类型、默认值、约束、索引、外键、触发器、过程、函数、视图、序列、枚举和行数。对于 MongoDB,扫描集合以推断架构。对于 Supabase,还要提取 RLS 策略、扩展和发布。请参阅 references/schema-discovery.md。

  3. 映射数据类型。将每种源类型转换为最合适的目标类型,并标记有损转换或精度变化。转换提供商特有的 SQL 函数。请参阅 references/type-mapping.md。

  4. 生成架构脚本。通过拓扑排序确定建表顺序(延后处理循环外键)。生成 DDL,转换序列/自动递增,重写触发器和存储过程,并转换视图。请参阅 references/script-generation.md。

  5. 生成数据迁移脚本。为源和目标提供商生成导出、转换和导入命令。请参阅 references/data-migration.md。

  6. 生成验证计划。为源和目标生成行数、校验和、外键完整性、索引、触发器/过程以及抽样数据抽查查询。请参阅 references/validation.md。

  7. 生成回滚计划和停机时间估算。生成逆序 DROP 脚本、备份/还原命令、应用回滚步骤,以及包含缩短停机时间策略的分阶段停机时间估算。请参阅 references/rollback-and-downtime.md。

  8. 生成 migration-plan.md。汇总执行摘要、范围、架构清单、类型映射、不兼容项、脚本、验证、回滚、停机时间、风险评估、检查清单、分步执行指南以及所需的应用更改。使用 references/migration-plan-template.md 中的模板。

  9. 处理边缘情况。考虑超大表、有损映射、MongoDB 文档扁平化、PlanetScale 外键替代方案、Supabase 特性以及多架构迁移。根据质量检查清单验证计划。请参阅 references/edge-cases.md。

评论

支持 Markdown