我们可以使用TFS&SSDT创建SQLServer部署脚本,但是有没有办法创建回滚脚本,以便我们可以回滚部署?
谢谢
由于 SSDT(和类似产品)都是通过将项目中的模式与实时数据库进行比较来使数据库与模型同步来工作的,因此没有直接的方法来创建回滚脚本。还需要考虑通过部署前或部署后脚本更改/添加/删除数据。
话虽这么说,有几种选择。
- 每次发布时都拍摄快照。您可以使用先前版本中的快照进行另一次比较以实现回滚目的。
- 在其他地方维护先前的版本 - 也许可以将生产系统与本地计算机的模式进行比较。您可以使用它来与生产进行比较并进行回滚。
- 在发布之前生成现有系统的 dacpac(使用 SQLPackage 或 SSDT 来执行此操作)。如果出现问题,您可以使用它将该版本的架构部署回数据库。
- 在发布之前拍摄数据库快照。最好的情况是,您不需要它并且可以删除快照。最坏的情况,你可以用它来回滚。当然,您需要注意空间和 IO,因为您将在其他地方保持原始状态。
- 在多个环境中运行您的更改,以最大程度地减少回滚的需要。理想情况下,如果您已在开发、质量检查和暂存/用户接受环境中运行此操作,那么您的代码和版本应该足够可靠,能够在没有任何问题的情况下发布。
您需要相应地编码来回滚数据更改。这可能会有点棘手,因为每个场景都不同。您需要确保编写的脚本可以撤消发布中所做的任何更改。如果插入了一行,则需要回滚脚本来删除它。如果您更新了一堆数据,您将需要备份该数据或通过其他方式将其恢复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)