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 を使用してください)。
- 数個の列を変更する、またはテーブルを1つ追加する場合(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 を参照してください。