Agent Skills
返回列表
跨数据库迁移引擎兼容转换

跨数据库迁移引擎兼容转换

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_fccf428b/database-migrator

技能介绍

跨数据库迁移的真实痛点

在 PostgreSQL、MySQL、Supabase、PlanetScale 与 MongoDB 之间迁移 schema、数据和逻辑时,工程师常面临三类问题:方言差异(如 PostgreSQL 的 JSONB 与 MySQL 的 JSON 类型映射)、依赖顺序(外键循环依赖导致 DDL 执行失败)、功能缺失(PlanetScale 不支持数据库级外键,MongoDB 需要文档扁平化)。传统迁移工具往往只做简单类型转换,忽略触发器、存储过程、序列等对象,导致上线后数据不一致或应用报错。

核心能力与工作流程

该技能通过结构化迁移流程解决上述问题:

  1. Schema 发现与类型映射

自动提取关系型、MongoDB、Supabase、PlanetScale 源库的表结构、约束、索引、触发器、函数等元数据,并通过 references/type-mapping.md 中的类型映射表(如 PostgreSQL SERIAL → MySQL AUTO_INCREMENT)生成目标端兼容的 DDL 脚本。

  1. 对象转换与脚本生成

- 通过拓扑排序解决外键循环依赖,生成符合目标库依赖顺序的 CREATE TABLE 语句。
- 转换序列、触发器、存储过程和视图,例如将 PostgreSQL 的 BEFORE INSERT 触发器重写为 MySQL 的 BEFORE INSERT 语法。
- 支持 references/edge-cases.md 中的边缘场景,如大表分批迁移、MongoDB 文档扁平化、PlanetScale 外键绕过策略。

  1. 数据迁移与验证

生成导出、转换、导入命令(如 pg_dump + mysql 导入),并生成验证计划:行数校验、checksum 比对、外键完整性检查、索引创建验证,确保数据迁移后的一致性。

  1. 回滚与停机规划

生成反向 DROP 脚本、备份/恢复命令,并提供分阶段停机估算(如“预计停机 2 小时,通过蓝绿部署可缩短至 30 分钟”),降低迁移风险。

适用边界与注意事项

  • 适合场景:生产库跨供应商迁移(如自建 PostgreSQL → 云上 PlanetScale)、多云灾备 schema 复制、关系型与文档型数据库模型转换。
  • 不适合场景:实时复制或 CDC(该技能生成静态脚本,非流式管道)、纯 schema 设计(推荐 database-schema-designer)、少量列修改(直接写 ALTER 语句更高效)。
  • 安全边界:默认不执行任何命令,仅生成参考脚本;涉及外部写入(如发布、部署)需用户明确确认;凭据仅用于指定服务,不回显或存储。

使用场景

  • 把自建 PostgreSQL 生产库整体迁到 PlanetScale,需要生成 MySQL 方言 DDL、绕开外键限制并规划停机窗口
  • 将 Supabase 中的 RLS 策略、扩展和表结构同步到自建 PostgreSQL,用于搭建多云灾备副本
  • 把 MySQL 关系库迁到 MongoDB,需要设计文档扁平化方案、生成校验查询并处理精度损失的字段映射
  • 生产库从 MySQL 迁到 PostgreSQL,需要翻译序列、触发器和存储过程,并产出可审计的迁移与回滚计划

适合人员

  • 负责生产库迁移的后端工程师:需要把数据库从旧供应商迁到新供应商,并保证行数与 checksum 一致
  • 运维或 DBA:负责自建库与云托管库之间的迁移,需要停机估算、备份恢复脚本和回滚方案
  • 技术负责人:要评估跨数据库迁移的风险,需要一份可审计、可回滚的迁移计划文档