スキーマのマージ

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  チュートリアル > "ZooDB" データベース > データベーススキーマの比較 >

スキーマのマージ

比較を開始 しスキーマ間の 差分を確認 すると、2つのスキーマをマージすることができます。データベース構造への変更を簡単に戻すことは難しいため、 DatabaseSpy はマージを直接行うことはせず、スクリプトをレビューし、データベースにスキーマ構造をコミットするか決定できない場合、 SQL エディターウィンドウ内でマージスクリプトを表示することができます。

 

すべての差分を一度にマージ (例えば、スキーマ構造への変更のすべてを含むマージスクリプトを作成します) または、1つまたは複数の特定の差分をマージすることができます (例えば、選択された変更を含むマージスクリプトを作成します)。マージ自身は両方のディレクトリで行うことができます。すなわち、左側から右側へ、または、右側から左側へマージすることができます。一部の変更を左側から右側へ、一部の変更を右側から左側へマージすることによりスキーマ構造をミックスすることもできます。

 

下のスクリーンショットは、スキーマ "dbo" からスキーマ "test" (左側から右側へのマージへスキーマの構造をコピーするためのマージスクリプトを表示しています)。

merge_l2r

右側から左側へ変更をマージすることを決めると、異なるマージスクリプトが生成されます:

merge_r2l

チュートリアルのこのセクションでは、test.tblVets から test.tblVeterinarians に名前を変更し (左側から右側へのマージ)  e-mail 列を dbo.tblZookeepers (右側から左側へのマージ) と test.tblVeterinarians (左側から右側へのマージ)に追加します。

 

 

zoo データベース内にスキーマをマージする方法:

1.メニューオプション スキーマの比較 | アイテムの折りたたみ を選択、または、どちらかのコンポーネントのタイトルバーを右クリックし、アイテムの折りたたみ をコンテキストメニューから選択します。
2.データベースとスキーマを展開し、dbo.tblVeterinarians または test.tblVets  を選択します。
3.メニューオプション スキーマの比較 | マージスクリプトの表示: 左側から右側へ を選択、または、 コンポーネント内のテーブルを右クリックし、マージスクリプトの表示: 左側から右側へ をコンテキストメニューから選択します。 マージスクリプトは新規の SQL エディターウィンドウ内で表示されます。

merge_tblVets

スクリプトは残りのテーブル自身のために SQL のみを含んでいることに注意してください。また、このテーブル内で異なる名前を持つ2つの列が存在することにも留意してください。2つの列とのテーブルの名前を変更するマージスクリプトを生成するには、列もマージスクリプトを生成する際に選択しなくてはなりません。スクリプトを実行、または、保存することなく SQL エディターウィンドウを閉じ、スキーマの比較 ウィンドウに戻ります。

 

4.tblVeterinarians を展開し、テーブル名と列 LastName、Telephone、および Email を選択します(Ctrl キー を押して、複数のアイテムを選択します)。

merge_select-cols

5.メニューオプション スキーマの比較 | マージスクリプトの表示: 左側から右側へ を選択し、SQL エディター内でマージスクリプをチェックします。

merge_tblVets-complete

両方のテーブルと列の名前は変更され、列 Email は スキーマテストに追加されます。

6.SQL エディターが、 ZooDB に接続されていることを確認し、 実行 ic_execute-sql をクリックします。
7.オンラインブラウザー内で、ツールバー内の 更新 ic_refresh-datasource ボタンをクリック、 ZooDB を右クリックし、 更新 をコンテキストメニューから選択します。 dbo.tblVeterinarians がスキーマの比較 ウィンドウ内にマップが解除された状態で表示されます。

merge_tblVets-unmapped

8.右側の比較コンポーネントのタイトルバーをダブルクリックし、比較のためにデータベースオブジェクトを選択する ダイアログボックス内で名前の変更されたテーブル tblVeterinarians を選択します。
9.比較 ic_start-db-comparison ボタンを比較ウィンドウ ツールバー内でクリックします。dbo.tblVeterinarians と test.tblVeterinarians 間には差分は存在しません。
10.test.tblZookeepers を展開し、列 Email を右クリックし、 マージスクリプトの表示: 右側から左側へ をコンテキストメニューから選択します。

merge_tblZook-r2l

11.マージスクリプトを実行し、 データベースを更新し、 比較を実行し、スキーマの比較 ウィンドウ内で変更を確認します。dbo.tblZookeepers と test.tblZookeepers 間には差分は存在しません。

(C) 2019 Altova GmbH