私は定期的に EF 移行を使用して、データベースをゼロから展開する場合と進化させる場合の両方を展開しています。しかし、私は現在、DACPAC を使用する別のチーム プロジェクトに取り組んでおり、今日まで同様に優れているように見えました。今日、一意のキー制約が不足しているテーブルに一意のキー制約を追加したところ、ご想像のとおり、爆発し、sqlpackage.exe を介した DACPAC の展開が失敗しました。
私が今気付いたのは、障害が決してロールバックされていないことです。したがって、部分的に変換された状態のデータベースがあり、展開前スクリプトが実行された後に削除された列を参照する展開前スクリプトがあるためです。最初は、その理由で失敗したため、dacpac を再度実行できない状態になりました。
私は、間違って、sqlpackage.exe が配置をトランザクションにラップし、失敗するとロールバックすると思い込んでいました。それから、自分の誤りに気づいたとき、また間違って、どこかでフラグを見逃したのだと思いました。
データベースを本質的に破損することなく安全に実行する方法を誰か教えてもらえますか...