2つの MySQL データベースを比較
2つの MySQL スキーマの違いを、ひと目で。
DiffyPick を 2つの MySQL(または MariaDB)データベースに向けると、差分のあるテーブル・カラム・インデックスをすべて一覧し、揃えるための ALTER TABLE SQL を生成します。
本来もっと簡単でいいはず
スキーマは環境の間でズレていき、本当の構造は誰も読まなくなったマイグレーションファイルではなくデータベースの中にあります。
DiffyPick は両方のスキーマを直接読み取り、その違いをオブジェクト単位の見やすい一覧で示します。
手作業でやると
mysqldump --no-data で両方をダンプして差分を取るか、information_schema を手で叩く方法があります。mysqldbcompare のような旧ツールは非推奨です。
いずれも AUTO_INCREMENT・エンジン・文字セットのノイズと戦うことになり、安全な ALTER 文は結局自分で書く必要があります。
DiffyPick はオブジェクト単位で比較し、変更をテーブルごとの ALTER TABLE にまとめます。
DiffyPick なら
両方に接続する
2つの MySQL または MariaDB 接続と、それぞれのデータベースを選びます。
比較する
差分のあるテーブル・カラム・インデックス・外部キーがすべて差分として色分け・検索可能に一覧されます。
確認して同期する
生成された ALTER TABLE SQL をプレビューし、適用するものを選んで実行、または HTML レポートに出力します。
得られるもの
- ノイズだらけのテキストダンプではなく、オブジェクト単位の差分。
- 複数の ALTER をテーブルごとに 1文へ結合。
- 実行前のプリフライトチェックと 1クリックバックアップ。
- MariaDB に対応し、PostgreSQL・SQL Server・SQLite でも同じ流れ。
MySQL スキーマを、いま比較。
SQLite は無料。MySQL と MariaDB への接続は有償プランで。開始にアカウントは不要です。