【ハウツー】
開発者別にデータベースを用意していると、最新のスキーマ定義と各開発者のスキーマ定義にズレが生じてしまうことがあります。また、本番にリリースすべきテーブルやストアドプロシージャを正しく配置できたかを確認したくなることもあります。そのような時にデータベース間のスキーマを簡単に比較および同期できるツールがあると便利です。
そこで、本稿ではOpen DBDiffというオープンソースを紹介します。Open DBDiffを利用すると、2つのデータベースを比較して、それらを同期するSQLを出力できます。
Open DBDiffは、SQL Server 2008(2005)のデータベーススキーマを比較できるツールです。2つのデータベースを比較して、これらを同期するためのアップグレードSQLを生成できます。
Open DBDiffでは、上図のツリービューに表示されているオブジェクトの比較が可能です。例えば、テーブル、カラム、制約、インデックス、ビュー、ストアドプロシージャ、ファンクション、ユーザー、ロール等の比較が可能です。
Open DBDiffはCodePlexにて配布されています。ライセンスはGPLv2です。本稿では、執筆時点の最新バージョン「Open DBDiff 1.0 (Beta 8)」のインストーラ「Setup.rar」をダウンロードしています。
インストールは「Setup.exe」を実行して「Next」ボタンをクリックしていくだけです。
インストールが成功すればデスクトップに「Open DBDiff 1.0」というアイコンが表示されます。これをダブルクリックするとメインウィンドウが開きます。
続けて、比較するDBの接続情報を設定します。左の「Source Database」に比較元のDBを、右の「Destinateion Database」に反映先のDBを設定します。「Test Connection」ボタンで接続設定をテストできます。 そして「Compare」ボタンをクリックすると、DBのオブジェクトを解析するダイアログが表示されます。
しばらくするとSchemaタブにスキーマの比較結果が表示されます。
比較結果は色で確認することができます。黒色は変更なし、緑色は新規、青色は変更、赤色は削除です。
本稿のサンプルでは、古いDB(MyDB)と最新DB(NewDB)を比較しています。「Table1」は変更がないので黒色で表示されています。「Table2」は変更があるため青色で表示されています。
詳細を確認したい場合は、ツリーをクリックして変更内容をチェックできます。ここでは、Name列(赤色)が削除され、FirstName列とLastName列(緑色)が追加されていることがわかります。
![]() |
カラムの追加と削除を色で判別できる |
Table_3は、緑色で表示されているので、新しく作られたオブジェクトであることがわかります。ツリー内のテーブル名をクリックすると、右側のNew objectタブに最新のテーブル定義が表示されます。
| 理研、脳・脊髄形成に必要な神経板湾曲の仕組みを解明 [20:16 5/25] |
| 京大、「慢性閉塞性肺疾患」患者の労作時呼吸困難は鍼治療が有効と実証 [20:08 5/25] |
| 120Hz SHVカメラ用イメージセンサーを使った撮像装置 - SHVフルスペック化へ [18:10 5/25] |
| 京大、視覚による物体認知は前頭前野からのトップダウン信号が重要と確認 [17:45 5/25] |
| 製品数の拡大だけでなくBCPの展開なども含めた総合力で事業の強化を図るTI [17:25 5/25] |
|
【連載】読む鉄道、観る鉄道 第9回 『サブウェイ・パニック』 - 1970年代のニューヨークと地下鉄の情景を描く [08:00 5/27] ライフ |
|
【連載】発音も聞けちゃう、知って得するidiom情報 第14回 call it a day [08:00 5/27] ライフ |
|
MINI、ロールスロイスにインスパイアされた最高級品質の特別仕様車を発売 [07:30 5/27] ライフ |
|
【連載】Japanglish、正しく言うならこうでしょう 第57回 gasoline stand(ガソリンスタンド) [07:00 5/27] キャリア |
|
【連載】これだけは要チェック! TOEIC(R)単語帳 第105回 今回のお題は…「regard A as B」 [07:00 5/27] キャリア |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。