10

我正在使用 Visual Studio 2010 中的数据库项目来生成一个脚本来部署我的数据库(以及它的更改)。这很好用。

有没有办法让 Visual Studio 数据库项目生成回滚脚本以及部署脚本。

我不想在部署时回滚事务;但是假设我部署它并且我的存储过程有一个被忽视的性能问题,该问题在一周后出现,需要回滚到以前版本的数据库。

有没有办法在构建/部署时生成回滚脚本,这将撤消部署脚本所做的任何更改。

编辑:如果我们忽略我正在使用数据库项目:为生成的数据库生成升级和降级路径的好方法是什么?
这一代需要成为自动化构建过程的一部分。

4

3 回答 3

6

创建回滚脚本 在使用 VS2010 进行模式比较时,就像交换源和目标中指定的数据库名称一样简单。

这样 VS2010 将创建一个回滚脚本,该脚本将对您的存储过程进行删除语句。

于 2011-06-15T14:32:21.010 回答
0

我没有见过这样的事情。

我认为您需要重新考虑这种方法,因为您仍然需要修复数据库项目中的存储过程,否则您下次部署时只会重新部署“坏”版本。(我相信您已经意识到这一点,但有时指出显而易见的事情并没有帮助!)

如果您需要同时将旧版本的 sproc 恢复到服务器,我认为最简单的做法是从源代码管理中获取以前的版本并手动部署它。

于 2011-04-04T15:30:56.687 回答
-1

您可以在发布之前创建数据库的备份,然后在出现问题时从备份中恢复。显然,自从进行备份以来,您还会丢失任何数据更改(作为发布的一部分或随后进行的)。

我的另一个想法是在发布之前创建一个快照。创建快照的操作非常轻量级。我不确定您是否希望将快照保留一周,但如果发布出现问题,那么我认为从快照恢复比从完整备份恢复更快。我很想听听人们对这个想法的任何评论。

于 2011-12-21T16:01:47.037 回答