データベーススキーマのマージ

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

ホーム >  データベーススキーマの比較 >

データベーススキーマのマージ

2つのデータベーススキーマ間のスキーマ比較を実行すると (「左側」 と 「右側」 )、 テーブル 差分を2つのデータベースの間で同期化 (マージ) することができます。マージ操作はデータベースの構成に影響しますが、直接適用されません。代わりに、 DiffDog はマージスクリプトを生成します。生成された マージスクリプトは、左側のデータベースから 「右側」のデータベースに、または、その逆に変更を適用することができます。

 

メモ:(列、キー、または、制約への変更を含む)テーブルの構造 の比較後の差分のみをマージスクリプトは同期化します。テーブルの構造 の比較後の差分のみをマージスクリプトは同期化します (ストアドプロシージャ、関数、ビューなどの)他のオブジェクトの型の間の差分のマージ はサポートされません。

 

マージスクリプトが生成されると、DiffDog 内で直接マージスクリプトを実行することを選択でき、実行のために DatabaseSpy 内で開くことができます。または、ファイルに保存し後に実行のために使用します。

 

データベースに対してマージスクリプトを実行する前に、レビューすることが奨励されます。データベーススキーマ間の構造差分のサイズが大きい場合、生成された マージスクリプトのサイズも同様に大きくなります。ターゲットデータベース内の複数のアイテムの更新の際に発生する問題を回避するために、小さいスケールのスクリプトを生成し、段階的に適用することもできます。 例えば、マージに含まれる特定のアイテム (列、 制約) を選択し、その選択されたオブジェクトのためにのみ、スクリプトを生成することができます。

 

 

マージスクリプトを生成して実行する方法:

1. データベーススキーマの比較を実行します (次を参照してください: データベーススキーマの比較の実行).
2.必要に応じて、特定のアイテムのみをマージするには、 コンポーネント内のこれらのアイテムを Ctrl+Click を使用して選択します。 左側、または、右側のコンポーネント内のアイテムを選択しても、マージの方向に影響はありません (例えば、右側のコンポーネント内のアイテムを選択し、左側から右側へのマージを選択することができます)。

 

重要点: 親のみが選択されている場合、テーブル、または、列の子要素は、自動的にマージに含まれます。 このため、親オブジェクト (例えば、 テーブル)を選択する場合、 (列、または、制約などの) マージされる子アイテムも含まれていることを確認してください。例えば、(下に示されるように)列名が同じで、データ型が異なる場合、有効なマージスクリプトを作成するためにデータ型アイテムを選択する必要があります。

diff_select-child

 

3.次のいずれかを行ってください:

 

差分とマージ メニューから「左側から右側へコピーする」を選択します。
「左側から右側へコピーする」 ic_merge-selected-left2right ツールバーボタンをクリックします。

 

上のコマンドは、左側から右側へデータベース構造をマージすると想定します。それ以外の場合、 対応するリバース (右側から左側へ) コマンドを使用します。

 

SQL マージスクリプトは、「スキーマをマージ」ダイアログボックス内で表示されます。(上のステップ 2 )マージが開始する前に、アイテムが選択されていない場合、「全てのアイテムを使用」 オプションが選択され、比較ウィンドウ内に「グローバル」マージスクリプトが表示されます。1つ、または、複数のアイテムがマージのために選択されている場合、 「選択されたアイテムを使用」 オプションは アクティブです。この場合、「全てのアイテムを使用」 オプションを選択すると、全てのアイテムをマージすることができます。

 

dbdiff_schema_comparison_merge

 

4.マージスクリプトをプレビューし、「実行」をクリックします。

 

マージスクリプトを修正する場合、オペレーションをキャンセルし、ファイルに SQL マージスクリプトを保存し、外部のエディターを使用して編集、または、 DatabaseSpy がインストールされている場合、 SQL マージスクリプトを編集します。

 

 

DatabaseSpy 内でマージスクリプトを実行する:

1.コンポーネントヘッダー、または、選択されたアイテムの1つを右クリックし、コンテキストメニューから「マージスクリプトの表示: DatabaseSpy 内で左側から右側へ 」(または、場合により、 マージスクリプトの表示: DatabaseSpy 内で右側から左側へ)を選択します。 これにより DatabaseSpy が開かれ、新規のプロジェクトが作成され、ターゲットデータベース (すなわち、変更が発生する データベース)にデータソース接続が追加されます。 DatabaseSpy 内でプロジェクトが既に開かれている場合、新規の データソース接続がプロジェクトに追加され、データソースの名前を定義するようにプロンプトされる場合があります。 必要に応じてスクリプトをチェックし、編集することのできる SQL エディター ウィンドウ内にマージスクリプトが表示されます。
2.データソースに接続し、「実行」 ic_execute-sql ボタンをクリックし、または、「F5」 を押して、変更スクリプトを実行し、データベースへスキーマの変更をコミットします。

 

 

マージスクリプトをファイルに保存する:

コンポーネントヘッダー、または、選択されたアイテムの1つを右クリックし、コンテキストメニューから「マージスクリプトの保存: 左側から右側へ...」(または、場合により、 「マージスクリプトの保存: 右側から左側へ...」)を選択します。

(C) 2019 Altova GmbH