DAC Fxと宣言的データベース開発を活用することに興奮しています。私の主な障害は、スキーマの異なるバージョン間で複雑なデータ移行を処理する方法です。旧世界では、すべてのアップグレードスクリプトを順番に実行するだけで、スキーマがデータ移行時に正しい状態にあることが保証されます。アップグレードパスが動的である場合、これはどのように機能しますか?データ層アプリケーションフレームワーク(DAC Fx)での複雑なデータ移行
例えば、既存のインスタンス上で私のスキーマ(DACPAC1-4)の複数のバージョンが存在すると仮定します
- DACPAC1:にtableAが存在し、DACPAC2
- 貴重なクライアントデータがありますにtableAは非推奨と置き換えられているがtableBと正規化されたtableC。新しい 提出
- ポストデプロイスクリプトを追加します。新しいTABLEBと TABLECまでにtableAからデータを移動させます。 tableAをドロップ
- DACPAC3:TABLECは新しい、NULL可能COLUMNX
- ポストデプロイスクリプトがありますtableC.columnXは
DACPAC1-3サーバーを最新のDACPAC4にアップグレードする必要がある場合は、どのDACPACが現在ターゲットになっているかを検出するのに十分な方法で、展開前および展開後のスクリプトを作成する必要がありますデータ移行手順を正しく処理します。さらに、私が最初に書いた素敵な配備後スクリプトは、スキーマの中間バージョンに依存しているので、単純に再利用することはできません。
アドバイスを事前にいただきありがとうございます!