PEM Schema Diff Tool

**スキーマ差分**は、2つのデータベーススキーマ間でスキーマオブジェクトを比較できる機能です。 Schema Diffにアクセスするには、 Tools メニューを使用します。

Schema Diff機能を使用すると、次のことができます。

  • データベーススキーマを比較および同期します(ソースからターゲットへ)。

  • データベーススキーマ間の違いを視覚化します。

  • ターゲットスキーマオブジェクトのSQLステートメントの違いを一覧表示します。

  • 同期スクリプトを生成します。

注-ソースデータベースとターゲットデータベースは、同じメジャーバージョンである必要があります。

Tools メニューの下の Schema Diff をクリックして、選択パネルを開きます。比較するソースサーバーとターゲットサーバー、データベース、およびスキーマを選択します。オブジェクトを選択した後、 Compare ボタンをクリックします。

個々のタブで Schema Diff の複数のコピーを同時に開くことができます。 Schema Diffのコピーを閉じるには、タブバーの右上隅にある X をクリックします。

schema diff dialog

スキーマ差分ダイアログ

Preferences ダイアログを使用して、 Schema Diff を新しいブラウザタブで開くかどうかを指定します。 Open in new browser tab オプションを true に設定します。

Schema Diff パネルは2つのパネルに分かれています。 Object Comparison panel および DDL Comparison panel 。

スキーマ差分オブジェクト比較パネル

オブジェクト比較パネルでは、比較する同じメジャーバージョン、データベース、スキーマのソースサーバーとターゲットサーバーを選択できます。接続されているか切断されているかにかかわらず、ブラウザツリーの下にリストされているサーバーを選択できます。接続されていないサーバーを選択すると、サーバーを使用する前にパスワードの入力を求められます。

次に、比較するデータベースを選択します。データベースは同じでも異なっていてもかまいません(同じサーバー内または異なるサーバーから)。

最後に、比較するソーススキーマとターゲットスキーマを選択します。

Schema diff compare button

スキーマ差分ダイアログ-比較ボタン

サーバー、データベース、スキーマを選択したら、 Compare ボタンをクリックして Comparison Result を取得します。

Schema diff comparison results

スキーマ差分ダイアログ-比較結果

すべてのスキーマオブジェクトのDDLステートメントを表示するには、関数、マテリアライズドビュー、テーブル、トリガー関数、プロシージャ、およびビューのドロップダウンリストを使用します。

オブジェクト比較パネルの右上隅には、次の比較基準に基づいてスキーマオブジェクトをフィルタリングするために使用できる Filter オプションがあります。

  • 同一–オブジェクトが同じSQLステートメントを持つ両方のスキーマで見つかった場合、比較結果は同一です。

  • 異なる-オブジェクトが両方のスキーマで見つかったが、異なるSQLステートメントを持っている場合、比較結果は異なります。

  • ソースのみ-オブジェクトがソーススキーマのみで見つかり、ターゲットスキーマでは見つからない場合、比較結果はソースのみです。

  • ターゲットのみ–オブジェクトがソーススキーマではなくターゲットスキーマのみで見つかった場合、比較結果はターゲットのみです。

Schema diff filter option

スキーマ差分ダイアログ-フィルターオプション

オブジェクト比較パネルでスキーマオブジェクトのいずれかをクリックすると、そのオブジェクトのDDLステートメントが DDL Comparison パネルに表示されます。

Schema Diff DDL比較パネル

DDL Comparison パネルには3つの列が表示されます:

  • 最初の列には、ソーススキーマのオブジェクトのDDLステートメントが表示されます。

  • 2列目には、ターゲットスキーマのオブジェクトのDDLステートメントが表示されます。

  • 3列目には、ターゲットスキーマオブジェクトのSQLステートメントの違いが表示されます。

Schema diff DDL comparison

スキーマ差分ダイアログ-DDL比較パネル

すべてのスキーマオブジェクトのDDLステートメントを確認して、SQLステートメントの違いを確認できます。

スキーマ差分ツールを使用して、ソーススキーマオブジェクトのSQLステートメントに基づいて、ターゲットスキーマオブジェクトで見つかった差分のSQLスクリプトを生成することもできます。スクリプトを生成するには、オブジェクト比較パネルでスキーマオブジェクトのチェックボックスを選択し、オブジェクト比較パネルの右上隅にある Generate Script ボタンをクリックします。

Schema diff generate script

スキーマ差分ダイアログ-スクリプト生成ボタン

スキーマオブジェクトを選択し、 Generate Script ボタンをクリックして Query Tool を新しいタブで開きます。 Query Editor にはSQLステートメントの違いが表示されます。

スキーマオブジェクトをクリックして DDL Comparison パネルで生成された差異を確認し、スキーマオブジェクトのチェックボックスを選択していない場合、PEMは新しいタブで Query Tool を開き、 Query Editor に表示されるSQLステートメントの違い。

Copy ボタンを使用して、 DDL Comparison パネルで生成された差をコピーすることもできます。

Schema diff generate script query editor

スキーマ差分ダイアログ-スクリプトの生成-クエリエディター

ターゲットスキーマのSQLステートメントを適用して、スキーマを同期します。