2016-09-26 8 views
0

私は、最初から進化のためにEF移行を使用してデータベースを展開してきました。私は現在、DACPACを使用する別のチームプロジェクトに取り組んでいますが、これは今日まではまあまあだったようです。今日、私はそれに欠けていたテーブルにユニークキー制約を追加しました。おそらく想像していたように、それは爆発し、sqlpackage.exeによるDACPAC展開は失敗します。SqlPackage.exeを使用して失敗したDACPACをロールバックする

私が今実現していることは、障害はまったくロールバックされないため、部分的に変換された状態のデータベースがあることと、デプロイスクリプトが初めて実行されたとき、代わりにその理由で失敗したため、dacpacを再度実行できないような状態になりました。

sqlpackage.exeがトランザクションの展開をまとめて失敗したときにロールバックすると誤って想定していました。それから私のエラーを実現するには、間違って再び、私はどこかの旗を欠いていたと仮定しました。 SqlPackage.exeが単一のトランザクションとしてメインスキーマ変更操作を実行するようにしてIncludeTransactionalScripts =真:

誰もがあなたが/ Pを使用することができます...どのように基本的にデータベースを破壊することなく安全に1を実行する

答えて

1

を教えてもらえます。ただし、導入前後のスクリプトは、そのトランザクションロジックには含まれていません。提案されている方法は、安全に再実行できるように(つまり、冪等のT-SQLとして)展開前スクリプトと配布後スクリプトを作成することです。

関連する問題