数据库项目中是否可以回滚?

Is rollback possible in Database-project?

我在 visual studio 2013 年从现有数据库创建了数据库项目。然后我在数据库项目中做了很多更改,如修改存储过程、post 部署脚本、table 结构等。现在数据库项目已准备好部署。但我担心如果任何脚本失败,那么我如何才能在正确构建的情况下保留原始状态。

请建议,如果任何查询失败,那么我希望回滚我在数据库项目中所做的所有更改。

我前段时间使用过 Db 项目,据我所知,部署脚本包含在一个事务中。可以在不执行脚本的情况下生成 sql 脚本。该设置位于数据库项目设置中的某处。您可以查看该脚本并确保它会在出错时回滚。

进行备份仍然是推荐的做法,尤其是当您部署到生产环境时。

您是否一直在将更改检查到版本控制中?如果是这样,您需要做的就是恢复到最后一个已知的良好版本。

或者...简单地找出它现在失败的原因并修复根本原因?

首先,您需要相信您的工具,要么相信它们会起作用,要么寻找其他工具。

在您建立信任的同时,我会在部署前脚本中添加一个创建备份,或者在您部署之前 运行 添加一个备份,然后如果出现任何问题,您可以恢复并找出问题所在。

正如大卫所说的回滚,你会得到以前部署的 dacpac 并从中生成一个新的部署脚本但是向前修复几乎总是正确的事情而不是而不是回滚到以前的版本。

编辑