TFS分支和数据库

时间:2012-06-12 09:38:07

标签: sql database tfs branch

我有一个项目,我们需要设置一个简单的分支策略,以启用新功能的开发,同时仍然能够修复另一个分支上的错误。

我遇到的问题是数据库。

数据库模式是TFS作为数据库项目的一部分,但为了拥有足够的测试数据,我们在一个点上进行了实时数据库的备份,并在开发过程中使用它进行测试。

目前,数据库(总共树)位于工作组服务器上,每个开发人员都有一组数据库,每组数据库都会使用其他开发人员在更改架构时创建的sql脚本一次更新。

我的问题: 我们如何重组这一点,以便每个分支都是自包含的,我们可以轻松地从一个分支切换到另一个分支。我已经研究过使用SQL express并将数据库放在分支中,但这并没有很好用。我们还研究了使用所有数据创建脚本并从数据库重建数据库,但结果却花费了太多时间,而且一些开发人员往往忘记经常这么做。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

Visual Studio支持database projects。使用它然后希望分支将相对简单。

您可以还原数据库备份,然后使用GDR同步/升级数据库架构。您需要编写数据更改脚本。

它确实涉及相当多的初始设置工作。

答案 1 :(得分:0)

Visual Studio数据库项目不是在保留数据的同时支持数据库升级的最佳工具。

重新考虑全新安装和升级之间的关系可能很有用。对于许多公司而言,升级是事后的想法,并且基于全新安装脚本的增量创建升级脚本。这会导致重复维护,不一致以及严重依赖升级路径上“当前”架构的细节。

因此我建议

  • 仅维护升级脚本(优先使用声明性源代码,并且每次升级都可以完全刷新)
  • 决定您是否支持降级
  • 确保在基础架构级别上最多应用一次升级脚本
  • 基本上从不编辑升级脚本,尝试坚持在应用程序序列的末尾添加新的脚本

这是一个非常具有侵略性的变化,它需要改变思维方式,因此首先要仔细评估您的长期升级需求。您需要完成更改的一个迹象是期望在多个发布和开发分支中进行大量并行开发或维护。