我们目前正在审查作为自动化开发人员部署中心的一部分的源代码控制产品。
我们希望能够以编程方式将数据库链接到源代码控制,而不是依赖开发人员这样做。这对 RedGate SVN 可行吗?如果是这样,怎么做?
谢谢大卫
我们目前正在审查作为自动化开发人员部署中心的一部分的源代码控制产品。
我们希望能够以编程方式将数据库链接到源代码控制,而不是依赖开发人员这样做。这对 RedGate SVN 可行吗?如果是这样,怎么做?
谢谢大卫
您可以使用OffScale DataGrove 之类的产品,它将为您的整个数据库(数据和架构)拍摄完整的快照,并且很容易与现有的源代码控制集成。
只需在提交时创建一个挂钩来标记数据库,方法是调用以下命令:
datagrove tag -n=<svn-tag-id>
如果您想在签出时自动获取与提交匹配的数据库,请使用 SVN 挂钩发出以下命令:
datagrove unload
datagrove load -n=<svn-tag-id>
DataGrove 易于使用并负责管理数据库,因此您不必这样做。现在可用的版本可以免费下载和使用。
您应该能够使用 Red-Gate 的 SQL Compare Pro 的命令行来做您正在寻找的事情。它可以编写数据库脚本并仅更改与数据库中已更改对象关联的文件。
但是,您正在考虑的过程似乎没有好处。如果您自动签入数据库中的更改,您可能会在更改过程中发现一些东西,从而使您的源代码存储库变得毫无价值。相反,您应该让开发人员在完成更改后签入代码。
如果您担心他们忘记签入,请设置一个持续集成环境,从存储库重建数据库并针对它运行测试。这将确保所有对象都在源代码管理中。
如果您还没有对数据库代码进行自动化测试,请查看 tSQLt。它是一个用于 SQL Server 的测试框架,使编写测试变得简单。它是开源的,您可以在此处获取: tSQLt – SQL Server 的数据库单元测试框架。还有很多关于如何编写测试以及如何在该站点上设置与 tSQLt 的持续集成的信息。