5

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

我遇到的问题是数据库。

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

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

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

有任何想法吗?

4

2 回答 2

3

Visual Studio 支持数据库项目。使用它,然后希望分支会相对简单。

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

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

于 2012-06-12T09:40:32.087 回答
0

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

重新考虑全新安装和升级之间的关系可能会很有用。对于许多公司来说,升级是事后才想到的,升级脚本是基于全新安装脚本的增量创建的。这会导致“当前”模式的细节在升级路径上的重复维护、不一致和严重依赖。

因此我会推荐

  • 只维护升级脚本(除非首选声明性源代码并且每次升级都可以完全刷新)
  • 决定是否支持降级
  • 确保在基础架构级别上,每个升级脚本最多应用一次
  • 基本上从不编辑升级脚本,尽量坚持在应用程序序列末尾添加新脚本

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

于 2012-06-12T09:51:55.140 回答