データベース管理者にとっては、あるデータベース環境で加えられた変更を別のデータベース環境にマイグレーションすることが必要になる場合が少なくありません。
例えば、大規模な開発データベースに加えられた変更を、正式なテスト・データベースにプロモートすることが必要になるかもしれません。
あるデータベース環境から別の環境に変更をマイグレーションするプロセスを以下の表に示します。
図 1. あるデータベース環境から別の環境への変更のマイグレーションのプロセス
変更マイグレーションのこの作業では、2 つのデータベース環境の間の相違点を判別し、異なっているオブジェクトだけを変更する必要があります。
新しい表を 1 個追加しただけの場合のように、相違点を容易に判別できることもあります。
一方、複数の表に数多くの変更を加えた場合、複数の表を追加したりドロップしたりした場合、基本キーや外部キーを変更した場合など、相違点の判別がもっと複雑な場合もあります。
あるデータベースから別のデータベースに変更をマイグレーションする場合、
異なる 3 つの方法を使用できます。
- コピー/貼り付け方式
- 相違点を既に識別しており、その相違点がマイグレーション対象の変更であると
いう確信があり、相違点を詳細に分析する必要がない場合は、コピー/貼り付け方式を使用します。
コピー/貼り付け方式を使用する場合は、比較エディターは表示されません。その代わりに、管理エクスプローラーまたは「オブジェクト・リスト」で、あるデータベースから別のデータベースにオブジェクトをコピー/貼り付けする際に、変更管理スクリプト・エディターが表示され、変更内容は、変更対象のデータベースに直ちにマイグレーションされます。
重要: コピー/貼り付け方式
は、1 つのスキーマから同じデータベースにある別のスキーマへのオブジェクトおよびデータ
のコピーをサポートする唯一の方式です。
注: コピー/貼り付け方式は、
選択したオブジェクトの必須オブジェクトもコピーするかどうかを指定できる
唯一の方式でもあります。他のコピー方式の場合、
デフォルトでは、必須オブジェクトもコピーされます。例えば、
表 A が表 B に依存し、表 B が表 C に依存するとします。
表 A をコピーするときに「必須オブジェクトのコピー」チェック・ボックス
を選択すると、表 B もコピーされますが、表 C はコピーされません。
- ドラッグ・アンド・ドロップ方式
- 相違点を既に識別済みであり、その相違点が間違いなくマイグレーション対象の変更であると
いう確信があり、相違点を詳細に分析する必要がなく、構造的な差異のみを移動する場合は、ドラッグ・アンド・ドロップ方式を使用します。
ドラッグ・アンド・ドロップでは、データは保持されません。
例えば、あるデータベースから別のデータベースに表をマイグレーションする場合、
表の中のデータはマイグレーションの際に保持されません。
- 比較方式 (比較エディター)
- 比較方式は、複雑な変更を加えたため、2 つのデータベース環境の間の相違点を注意深く判別することが必要な場合に推奨される方式です。
比較方式では、比較エディターが表示されます。
もう一方のデータベースにマイグレーションする必要のある変更を含むデータベースのモデルが、エディターの左側に表示されます。
変更のマイグレーション先であるデータベースのモデルがエディターの右側に表示されます。
変更を詳細に検討して、適用する変更のみを選択することができます。
重要: 変更のソース側が物理データ・モデルまたは DDL スクリプト・ファイルであって、データベース接続ではない場合には、比較方式を使用しなければなりません。
どの方式を採用する場合でも、変更対象のオブジェクトが変更管理スクリプト・エディターに表示されます。そこで、変更コマンドを生成、カスタマイズ、および実行することにより、実際にデータベースに変更を加えることができます。