# データベース同期の実行

前章ではER図からデータベーステーブルを作成するフォワードエンジニアリング機能、
データベーステーブルからER図を作成するリバースエンジニアリング機能について説明しましたが、 SI Object Browser ERではもう１つのデータベースと連携機能として、データベース同期機能があります。

データベース同期機能とは、ER図・データベーステーブルの両方に情報が存在する状態で、ER図・データベーステーブルのいずれかの情報を修正した際に、 もう片側に自動で同期をとる機能です。例えば、システム製造フェーズ以降での仕様変更や運用・保守においてのメンテナンス作業などで活用することができます。

■データベース同期の実行

データベース同期を実行するにはツールバーにあるデータベース同期のアイコン、または「データベース」メニューの中にある「データベース同期」をクリックします。
ツールバーのデータベース同期アイコンをクリックします。

ログオン画面が開きます。 「データベースタイプ」から接続するデータベースを選択し、 ユーザID、パスワード、接続モード(Oracleの場合)、サーバー(SQL Server/PostgreSQL/MySQLの場合)、ポート番号(PostgreSQL/MySQLの場合) を入力し、データベース接続を行います。

接続成功後は以下の画面が表示されますので、「デフォルトの同期方法」欄でER図とデータベースのどちら側を修正するかについて選択します。ER図の修正情報をデータベースに反映したい場合は、「データベース変更(モデル優先)」、データベーステーブルの修正情報をER図に反映した場合は、「モデル(データベース優先)」を選択してください。

・データベース同期

ER図とデータベースの比較が行われ、両者の差異の情報が表示されます。「操作」列では、どちら側を変更するかが矢印マークで表示されます。 前の画面で「データベース変更(モデル優先)」を選択していた場合、「操作」列はすべて右向き、「モデル変更（データベース優先）」を選択していた場合はすべて左向きの矢印となりますが、 「操作」列をダブルクリックすることで反対にすることや、無視(反映させない)に変更することも可能です。確認後、「開始」ボタンを押します。

以下の確認ダイアログが表示されますので、「はい」ボタンを押すことでデータベース同期処理が実行されます。また、「データベース変更(モデル優先)」を選択していた場合は、「実行するSQL文を確認する」のオプションも表示されます。当オプションをONにした場合は実行前に実行されるスクリプトを確認することもできます。

「はい」を押すとデータベース同期が実行されます。

以下のダイアログが表示されればデータベース同期は完了です。

なお、上記の例では「ALTER TABLE」のスクリプトが生成されていますが、変更内容によってはテーブルの再作成（DROP TABLE→CREATE TABLE)をしないと同期できない場合があります。その場合も以下のようにバックアップテーブルを作成し、テーブル再作成後にバックアップテーブルからデータを復旧するスクリプトを生成しますので、テーブルデータ（レコード）は消えることがないかたちとなっています。