我经常使用EF迁移来部署数据库,无论从头还是演化。然而,我目前正在研究另一个使用DACPAC的团队项目,直到今天,这个项目看起来一样好。今天,我添加了一个唯一键约束到一个缺乏它的表,并且你可能想象它会被炸毁,导致通过sqlpackage.exe进行的DACPAC部署失败。使用SqlPackage.exe回滚失败的DACPAC
我现在意识到的是失败不会回滚,所以现在我有一个处于部分转换状态的数据库,并且因为我有一个预部署脚本引用了预处理后的列,部署脚本第一次运行,现在状态是这样,我不能再次运行dacpac,因为它因此失败。
我错误地认为sqlpackage.exe会在事务中包装部署,并在失败时进行回滚。然后,在意识到自己的错误后,又错误地认为我错过了某处的国旗。
谁能告诉我如何安全地运行一个没有实质上破坏数据库...