SQL Compare快照:轻量级数据库版本控制和回滚机制(下)

本教程介绍了这些技术的简单扩展,其中包含SQL Compare Snapshots,本文是该教程的后半部分。快照是一个紧凑的二进制文件,它捕获源数据库结构的时间点副本。

SQL Compare是一款比较和同步SQL Server数据库结构的工具。现有超过150,000的数据库管理员、开发人员和测试人员在使用它。当测试本地数据库,暂存或激活远程服务器的数据库时,SQL Compare将分配数据库的过程自动化。

SQL Compare免费版

本文介绍了这些技术的简单扩展,其中包含SQL Compare Snapshots。快照是一个紧凑的二进制文件,它捕获源数据库结构的时间点副本。快照不包含任何表数据。它有点像VCS中的标记或分支,但是快照无法修改,因此表示数据库结构的完全稳定视图,因为它在创建时存在。内容紧接上文~

生成回滚脚本

如果源是快照,并且目标是数据库或底层脚本目录的较新版本,则部署脚本将修改目标,以使其结构状态与快照的结构状态匹配。实际上,这意味着它将回滚所有更改,还原任何对象修改,删除随后添加的任何对象,以及重新创建任何已删除的对象。

假设我已经从scripts文件夹部署了一个新的CustomersPOC数据库到我的开发SQL Server 2017实例中,然后对我的开发副本(删除表)进行了一些数据库更改,现在运行一个与原始快照的比较作为源。

60word-image-36.png在将任何更改部署到目标之前,我们可以选择在部署之前备份目标,SQL Compare将创建完整数据库备份,该备份将备份架构和所有数据,或者创建目标的新SQL Compare快照,这将是一个仅模式的副本,节省时间和磁盘空间。如果我想在以前的POC上重新运行某些测试但不想丢失我后续的工作,这很有用。

61word-image-37.png

最后,我们生成部署脚本,在这种情况下,将在我的目标CustomerPOC数据库中重新创建我之前删除的Contacts表。

62c-users-tony1-dav-appdata-local-temp-snaghtml3f5.png

SQL Compare将首先捕获目标(我的CustomersPOC开发数据库)的新快照,然后运行部署脚本进行修改CustomersPOC,与原始Customers快照同步。

使用快照作为目标

当我们希望在开发项目开始时从当前源创建新快照时,我们已经有一种方法将快照用作目标,或者保存源数据库的状态以供以后使用。

但是,我们也可以将现有快照用作目标,并将其与数据库、备份、脚本文件夹或其他快照进行比较。请记住,我们无法修改现有快照,因此生成的部署脚本的目标实际上是快照的源数据库。部署脚本将同步目标,以使其在结构上与源数据库相同。

当它接近将开发更改部署到预生产环境或生产时,这非常有用。例如,团队可以将开发中的最新数据库版本与生产数据库的快照进行比较,并为DBA提供部署脚本,以供详细查看。

63word-image-38.png

将快照用作源和目标

有时团队会想要比较两个快照。例如,如果无法直接将源开发数据库与不同环境中的最新数据库版本进行比较,则可能会发生这种情况,因为它们位于不同的网段上。或者,开发团队可能有几个POC快照,并希望了解它们之间的区别,以便它们可以将更改合并到一个数据库中。

将快照设置为源和目标时,SQL Compare将生成部署脚本以修改目标快照的数据库,以便在结构上匹配源快照。因此,例如,如果开发团队为DBA提供了开发数据库最终版本的快照,则DBA可以将其与生产数据库的最新快照进行比较,并检查生成的部署脚本。

结论

快照提供了一种在开发工作期间跟踪更改的简便方法,无论它们是迭代之间的小变化,还是发布之间的重大更改。快照可用于在发布期间快速生成回滚脚本,即使在出于安全原因而被基础结构设计隔离的环境中也是如此。

相关文章:

SQL Compare快照:轻量级数据库版本控制和回滚机制(上)

SQL Compare教程:工作示例——比较和部署两个数据库(上)

SQL Compare教程:工作示例——比较和部署两个数据库(下)


想要购买SQL Compare正版授权,或了解更多产品信息请点击“咨询在线客服”

扫描关注慧聚IT微信公众号,及时获取最新动态及最新资讯

1563778777.jpg

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月25日
下一篇 2019年7月26日

相关推荐

发表回复

登录后才能评论