我经常使用 EF 迁移来部署数据库,无论是从头开始还是为了进化。然而,我目前正在从事另一个使用 DACPAC 的团队项目,直到今天,这似乎也一样好。今天,我向缺少它的表添加了一个唯一键约束,正如您可能想象的那样,它爆炸了,导致通过 sqlpackage.exe 部署 DACPAC 失败。
我现在意识到故障绝不会回滚,所以现在我有一个处于部分转换状态的数据库,并且因为我有一个预部署脚本,该脚本指的是在预部署脚本运行后删除的列第一次,现在的状态使我无法再次运行 dacpac,因为它因此而失败。
我错误地认为 sqlpackage.exe 会将部署包装在事务中并在失败时回滚它。然后在意识到我的错误时,再次错误地假设我错过了某个地方的标志。
谁能告诉我如何在不破坏数据库的情况下安全地运行...