デスクトップで使うビジュアル スキーマ差分 & 同期ツール

DB の「何が変わったんだっけ」を、終わりにしよう。

ローカル、テスト、本番 — スキーマ構造はいつズレてもおかしくありません。DiffyPick は 2つの DB を比較し、差分を 5秒で見せて、そのまま安全に揃えます。

DiffyPick が 2つの MySQL データベースを比較している画面: 色分けされた差分一覧と生成された同期 SQL

いま運用しているデータベースで、そのまま使える

MySQLMariaDBPostgreSQLSQL ServerSQLite

3年目のマイグレーションファイル、本当に正しい?

Git の浸透で、コードのデプロイは飛躍的に楽になりました。

しかし DB・スキーマの変更だけは、2つの構造を目視で見比べるか、厳格なルールの下でマイグレーションを運用し続けるか —

疲弊することばかりです。

マイグレーションファイルを開かなくなった日

運用 3年目、数百本のマイグレーション。もう誰も読まない。真実は DB の中にしかない。

マイグレーション化されなかった障害対応の SQL

本番障害、コンソールに直接 ALTER。その場は直った — そのツケは、次の環境構築で回ってきた。

誰も覚えていないカラム

5人で共有するテスト環境。ある日カラムが増えている。誰が? いつ? 何のために?

チェックは、全部緑だった

マイグレーションの履歴管理はきちんとしていた。それでもドリフトは起きて、どのチェックにも引っかからなかった。

Flyway / Liquibase は履歴を管理する。DiffyPick は現実を見せる。

出番は、毎日ある

複数人での開発でも、複数環境の運用でも。本番への適用、検証環境の再現、リモートの差分の取り込みまで、毎日の様々な場面で使えます。

環境毎のズレを一発で吸収

普段の開発は、Docker などの各自のローカル DB で。共有環境や本番とのズレは、比較して差分を流すだけで揃います。リモートの変更をローカルに取り込むのも、その逆も、方向を選ぶだけです。

デプロイのたびに、答え合わせ

マイグレーションを流した後、DB は本当に意図した形になったのか。コードのデプロイに合わせて差分を確認すれば、「適用したつもり」がなくなります。

レコード同期も安全に

古くなった検証環境のデータを、本番から置き換え同期で入れ直せます。同期できるのは構造差分のないテーブルだけ — 形の合わないデータを流し込む事故は、設計上起きません。

オプションをいじるのではなく、差分を見て選ぶ

責任ばかり重くて退屈なこの作業を、DiffyPick は「選んで、同期する」だけに変えます。

DB を選んで比較すると差分が自動で抽出されるので、適用したいものを選んで実行するだけです。

差分を見て、適用するものを選ぶ

すべての差分が 1行になります。色分けされ、検索でき、個別に選択できます。膨大な差分でも、狙ったものだけをピンポイントで選び出せます。

チェックボックスと色分けタグ付きの差分一覧

依存関係は、こちらで組み立てる

本来 SQL は、どの順番で流すかを間違えると、実行が途中で失敗して止まります。DiffyPick なら、その順番を考えなくていい。適用したいものにチェックを入れれば、依存する変更まで一緒に選ばれ、安全に実行できる順番に SQL が自動的に並び替わります。

例えば、

  • 親テーブルを先に、DROP は子から。
  • 列削除時は、その列を使っているインデックスや制約を先に外す。

といった順序も全部自動です。

ADD FOREIGN KEY の差分にチェックを入れると、依存先の親テーブルの差分が自動でチェックされる様子

実行される SQL を、実行する前に

見えている SQL が、そのまま文単位で実行されます。シンタックスハイライトのテーマは設定画面から好みに合わせて変更できます。

シンタックスハイライトされた同期 SQL のプレビューと実行ボタン

実行前に、全部教えてくれる

危険なものは赤でブロックし、確認すべきことは黄色で提示します。失敗すると分かっている選択肢は、そもそも選べません。

実行前確認モーダルの要注意警告と確認事項

同期したら、差分ゼロ

差分を適用したら、もう一度比較。「差分はありません」が出たら、そこで作業は本当に終わりです。

同期後の再比較で「差分はありません」と表示された画面

直感的な操作で差分の比較と同期が可能

DB を選んで、差分を選んで、実行。この速さがそのまま毎日の速さになります。

「比較」から「完了」まで、全部の面倒を見る

同期が終わるまでの面倒ごとを、全部引き受ける機能たち。

FK 依存順の自動解決

CREATE は親から、DROP は子から。依存順の並べ替えは自動で行われます。

循環参照の検出

循環を検出したら、その実行中だけ FK チェックを一時無効化します。

プリフライトチェック

型キャスト / NOT NULL / UNIQUE を実データでサンプリング検査してから実行します。

バックアップまで 1クリック

確認画面から DB / スキーマを丸ごとバックアップできます。失敗しても履歴から復元できます。

文単位の実行と進捗表示

1文ずつ順次実行し、どこまで進んだかをリアルタイム表示します。失敗時はその場で停止し、結果を明示します。

重い ALTER の事前警告

10万行超のテーブルへの時間のかかる操作は、実行前にお知らせします。

多段 SSH トンネル

踏み台を重ねる多段構成に対応。チェーンして目的の DB まで到達できます。

SSL/TLS クライアント証明書

CA・クライアント証明書・キーを接続ごとに設定できます。

データ同期

置き換え型同期 (TRUNCATE + INSERT) です。チャンク単位のトランザクションとネイティブバルクロードで実行します。

異種 DB 間の型変換

分解 / JSON 化ルールで、方言をまたいで構造を移し替えます。

HTML レポート出力

差分をレポートに書き出せます。HTML の単一ファイルにまとまるので、チームレビューも 1 ファイル共有するだけ。

日本語 & English

警告文まで含めて完全にローカライズされています。今後も対応言語を追加予定です。

本番に向けても、安全に

スキーマを変えるツールは、慎重すぎるくらいでちょうどいい。DiffyPick は安全側に倒して設計しています。

設計として fail-closed

手動対応が必要な SQL は実行できません。警告だけで済ませず、実行自体をブロックします。

実行前に、すべてが見える

危険は赤、確認事項は黄で表示します。1つの確認画面に集約され、ログに埋もれません。

戻り道がある

先に DB / スキーマを丸ごとバックアップできます。必要になったら履歴から復元できます。

実行確認ダイアログ: 差分ごとの一覧、警告、バックアップボタン

バイブコーディング全盛期の、今だからこそ

AI が SQL を書く時代の、確かめる場所

マイグレーションも SQL も、機械が書く時代になりました。生成される SQL が増えるほど、本番に流す前に「何が変わるか」を人間の目で確かめる場所が必要になります。DiffyPick がその場所です。

DB を触るのは、もう DBA だけじゃない

ORM が当たり前になって、スキーマはアプリ開発者が持つものになりました。DiffyPick は「DB の専門家」だけでなく「DB を触るエンジニア」のためのツールです。

異なる DB へのスキーマ移管

例えば MySQL から PostgreSQL へ。または SQL Server から MariaDB へ。

DiffyPick はテーブルとカラムの構造を方言間で変換します。さすがに独自オブジェクトは原理的に不可能ですが、異種 DB への移行の下ごしらえとしては充分機能します。

全ペア × 双方向、50のルートで差分がゼロに戻るように往復テストしています。

MySQL から PostgreSQL への同期方向ラベルMySQL と PostgreSQL のデータベースを異種 DB 比較している画面

料金

1 ライセンス = 1 ユーザー。個人利用・商用利用を問いません。有償プランは日本語 UI 版のライセンスです (機能はすべて含まれます)。

Free

¥0
  • 接続できるのは SQLite のみ
  • 機能は有償プランと同じ
  • アカウント不要・試用タイマーなし
ダウンロード

月額プラン

リリース記念価格
¥1,200/月
  • MySQL / MariaDB / PostgreSQL / SQL Server / SQLite
  • 機能制限なし
  • いつでも解約可能
ライセンスを購入

2年更新プラン

リリース記念価格
¥24,000/2年
  • MySQL / MariaDB / PostgreSQL / SQL Server / SQLite
  • 機能制限なし
  • 月換算 ¥1,000 — 月額より 17%お得
  • 2年ごとに更新
ライセンスを購入

解約 (決済不能含む) しない限りは、リリース記念の終了後も上記価格のままでご利用いただけます。

FAQ

対応 OS は?

macOS と Windows です。Linux は現在対応を進めています。今しばらくお待ちください。

無料で試せますか?

はい。SQLite 接続のみ機能制限も試用期限もありません。アカウント登録もクレジットカードも不要です。

Flyway / Liquibase の置き換えですか?

併用も、DiffyPick 単独も、どちらも可能です。ただ、履歴の管理はマイグレーションツール、現在の DB が実際にどうなっているかの確認は DiffyPick — 分担することで、既存のマイグレーションファイルの健康度をより高く保てます。

本番 DB に向けても安全?

実行前の確認画面でプリフライトチェックが行われます。ほとんどの場合は問題ありませんが、何らかのリスクや警告がある場合はわかりやすく表示されます。バックアップは実行前にすぐ取れるようになっているので、ご不安な場合はバックアップを取得してください。

FAQ をすべて読む →

発案者より

これまで数多くのプロジェクトを渡り歩き、その多くで、マイグレーションファイルが形骸化して信用できなくなっている現場を見てきました。

開発フローを見直してみると、確かに本当のスキーマは DB の中にしかないのに、それを比較する選択肢は多くはなく、あったとしてもいずれも DB のプロフェッショナルでなければ使いこなせないような複雑な UI で構築されているのが現状でした。

そこで、差分を自動で抽出して、選んで、安全に流せる、視覚的・操作体験的に負荷を減らせるツールを考えました。

マイグレーションなしで Git のコードデプロイのように簡単で確実に DB 差分を反映できたらいいのに… そんな思いを抱いた事があるなら、きっと役に立つはずです。

別作業から戻ってきても、DB 差分が一目でわかる。

ダウンロードして、いま動いている DB を比べるところから始めてください。