我正在使用visual studio 2010中的Database项目生成一个脚本来部署我的数据库(以及它的更改)。这很有效。
是否有办法让Visual Studio数据库项目生成回滚脚本以及部署脚本。
我不打算在部署时回滚事务;但是说我部署它并且我的存储过程有一个忽略的性能问题,一周后出现,需要回滚到以前版本的数据库。
是否有办法在构建/部署时生成回滚脚本,以撤消部署脚本所做的任何更改。
编辑:如果我们忽略我正在使用数据库项目:生成数据库的升级和降级路径的好方法是什么?
这一代需要成为自动构建过程的一部分。
答案 0 :(得分:6)
创建回滚脚本使用VS2010进行模式比较时,它就像交换源和目标中指定的数据库名称一样简单。
这样VS2010会创建一个回滚脚本,该脚本会对你的存储过程执行drop语句。
答案 1 :(得分:0)
我没见过这样的东西。
我认为您需要重新考虑这种方法,因为您仍需要修复数据库项目中的存储过程,否则您只需在下次部署时重新部署“坏”版本。 (我相信你已经意识到了这一点,但有时候明显指出这一点并没有帮助!)
如果你需要同时将旧版本的sproc恢复到服务器,我认为最简单的方法是从源代码控制中获取以前的版本并手动部署它。
答案 2 :(得分:-1)
您可以在发布之前创建数据库的备份,然后在出现问题时从备份中恢复。显然,自备份完成以来,您也会丢失任何数据更改(作为发布的一部分或随后发生)。
我的另一个想法是在发布之前创建快照。创建快照的操作非常轻。我不确定你是否想要将快照保留一周,但如果发布错误,那么我认为从快照还原到完全备份会更快。我很想听听人们对这个想法的评论。