2

请原谅,今天是我尝试使用 TeamCity 设置 CI 环境的第一天。我正在开发一个 ASP.NET/Sql Server 应用程序,到目前为止一切顺利。MSBuild 是我的提供者。

我想知道在自动确保对本地数据库的更改作为集成过程的一部分上传到测试服务器时有哪些选项。现在我不太确定我是否想朝着 DBGhost 的方向去自动同步模式更改,我很乐意用我的本地数据库的副本替换测试服务器上的数据库。

我在这里有什么选择?

编辑:进一步调查显示 RedGate SQL 产品对此有好处。不过它们并不便宜。他们有一个关于在持续集成过程中使用他们的产品的很好的白皮书:http: //downloads.red-gate.com/HelpPDF/ContinuousIntegrationForDatabasesUsingRedGateSQLTools.pdf

4

1 回答 1

4

首先,我认为您的数据库应该包含在您的源代码控制策略中。K. Scott Allen 系列很好地总结了实现这一目标的基本原则。您还可以查看Martin Fowler 的 Evolutionary Database Design。如需更多实用信息,请查看如何从源代码控制构建数据库?.

正如我在回答中所写的那样,我维护了两组脚本:一组可以从头开始构建数据库,另一组可以将给定数据库从一个版本升级到最新版本。作为 CI 策略的一部分:

  • 应该使用这些脚本从头开始重建 CI 服务器上的数据库。然后,您可以检查您的脚本是否处于工作状态。
  • 理想情况下,我应该可以将数据库从版本 N-1 升级到版本 N,并将获得的 schema 与之前数据库的 schema 进行比较。我还在努力...
  • 应该将测试数据注入数据库中,以便执行应用程序的单元测试(您可以为此使用 bcp )。
于 2009-09-01T08:36:07.910 回答