【问题标题】:RedGate Programmatically Link DB to SVNRedGate 以编程方式将 DB 链接到 SVN
【发布时间】:2012-03-21 18:57:50
【问题描述】:

我们目前正在审查作为自动化开发人员部署中心的一部分的源代码控制产品。

我们希望能够以编程方式将数据库链接到源代码控制,而不是依赖开发人员执行此操作。这对 RedGate SVN 可行吗?如果有,怎么做?

谢谢 大卫

【问题讨论】:

标签: sql-server svn version-control redgate


【解决方案1】:

您可以使用像 OffScale DataGrove 这样的产品,它会为您的整个数据库(数据和架构)拍摄完整的快照,并且很容易与现有的源代码控制集成。

只需在提交时创建一个挂钩来标记数据库,方法是调用以下命令:

datagrove tag -n=<svn-tag-id>

如果您想在签出时自动获取与提交匹配的数据库,请使用 SVN 挂钩发出以下命令:

datagrove unload
datagrove load -n=<svn-tag-id>

DataGrove 易于使用并负责管理数据库,因此您不必这样做。现在可用的版本可以免费下载和使用。

【讨论】:

  • 我无法下载从该站点链接的版本。我收到 403 错误
  • DataGrove 在什么许可证下?是 FOSS 吗?
【解决方案2】:

您应该能够使用 Red-Gate 的 SQL Compare Pro 的命令行来做您正在寻找的事情。它可以编写数据库脚本并仅更改与数据库中已更改对象关联的文件。

但是,您正在考虑的过程似乎没有好处。如果您自动签入数据库中的更改,您可能会在更改过程中发现一些东西,从而使您的源代码存储库变得毫无价值。相反,您应该让开发人员在完成更改后签入代码。

如果您担心他们忘记签入,请设置一个持续集成环境,从存储库重建数据库并针对它运行测试。 这将确保所有对象都在源代码管理中。

如果您还没有为您的数据库代码进行自动化测试,请查看 tSQLt。它是一个用于 SQL Server 的测试框架,使编写测试变得简单。它是开源的,你可以在这里得到它: tSQLt – The Database Unit Testing Framework for SQL Server。 还有很多关于如何编写测试以及如何在该站点上设置与 tSQLt 的持续集成的信息。

【讨论】:

猜你喜欢
  • 2012-04-29
  • 2018-06-19
  • 2011-12-21
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多