DacUpgradeOptions.IgnoreDataLoss
自動データ層アプリケーション (DACPAC) アップグレードでプロパティを設定するベスト プラクティスは何ですか?
MSDN のドキュメント (リンク) に基づいて、IgnoreDataLoss
がTrueの場合、一部の操作でデータが失われた場合でもアップグレードが続行されます。Falseの場合、これらの操作によってアップグレードが終了します。たとえば、現在のデータベースのテーブルが新しい DAC のスキーマに存在しない場合、True が指定されている場合、そのテーブルは削除されます。このデフォルト値はTrueです。
ただし、すべてのデータベースの変更が自動的にパイプライン (CI -> テスト -> UI-テスト) に展開され、最終的に運用環境に展開される継続的デリバリーの環境では、設定する安全対策IgnoreDataLoss
はFalseであるように思われます。本番データベースでデータの損失やドリフトが発生することは望ましくありません。がFalseIgnoreDataLoss
で、開発者がデータ損失をもたらすデータベース変更をコミットすると、CI/テスト ビルドは失敗し、この変更が本番環境に到達する前にこれをキャッチできます。
ただし、データの損失が意図的に行われる場合があるため、このアプローチには問題があります。たとえば、使用されなくなった特定のテーブルを削除する必要がある場合があります。IgnoreDataLoss
がFalseの場合、ビルドは失敗し、DACPAC の変更は適用されません。これは、潜在的なデータ損失が検出されるためです (そのような損失が意図的であっても)。このシナリオでは、 TrueIgnoreDataLoss
になりたいと思います。
特に、継続的かつ自動的に展開している環境では、これに対するベスト プラクティスは何でしょうか。どんな提案でも大歓迎です。ありがとう!