私はIntelliJ IDEA Ultimateを愛用しています。
DBの差分をとるのにも使っているので、その方法をまとめます。
簡単に差分をとれるのでかなり便利。
概要
IntelliJ IDEAを使ってデータベースの差分をとってみます。
IntelliJ IDEA 14まではもう少し使いやすかったのですが、アップデートで使いにくくなってしまいました。
しばらくは差分をとるためだけにIntelliJ IDEA 14を入れていましたが、Macのアップデートの影響か動作しなくなってしまいました。
そのため、最新版のIntelliJ IDEA Ultimate 2019.2での差分のとり方を紹介します。(2019/10/25現在)
差分をとってみる
実際に差分を取ってみます。
私はsample1とsample2という名前のデータベースを用意しました。
sample1にのみtestというテーブルを作成し、sample2はそのまま使用します。
この2つのデータベースの差分を取りたいと思います。
DBに接続する

まずはIntelliJ IDEAから差分を取りたい2つのデータベースに接続します。
プロジェクトを開くと右側に「Database」というタブが表示されていると思います。
そこからデータベースのタブを開き、+ボタンの「Data Source」からデータベースを追加します。
私はMySQLを使用しているので「MySQL」を選択しました。

設定画面で接続先情報を入力します。
「Test Connection」を押してみて問題なければOKで保存します。
同様にもう1つのDBも登録します。
Diff画面を表示する

差分をとるための画面を表示します。
接続したDBの項目を展開していくとスキームが表示されます。
差分をとりたいスキームを選択します。
commandキーを押しながら選択することで複数選択できます。
2つのスキームを選択した状態で command + D でDiff画面を表示できます。

差分を表示する
画面上部に表示されている「→」、「≠」、「←」を選択します。
その後、「Migrate Left」または「Migrate Right」を選択することで差分を表示できます。


ここで表示されたSQL文を対象のDBで実行することで同じ環境にすることができます。
私の場合は以下のような状態になります。
- Migrate Leftで表示されたSQL文をsample1で実行 → sample1がsample2と同じ環境になる
- Migrate Rightで表示されたSQL文をsample2で実行 → sample2がsample1と同じ環境になる
まとめ
IntelliJ IDEAを使ったDBの差分のとり方を紹介しました。
各環境の状態を合わせたいときには便利ですね。
他のツールに比べて簡単に差分が取れるので便利だと思います。
差分をとるときはIntelliJ IDEAを使ってみてください。