【问题标题】:Manage schema changes by TFS User Story/ Change按 TFS 用户故事/更改管理架构更改
【发布时间】:2013-03-27 22:55:26
【问题描述】:
我们有多个功能需要开发,但管理层决定哪些功能进入 Live.. 这要求我们为每个用户故事/更改都有一个脚本。但是如何将数据库架构更改链接到 TFS 中的用户故事?
我们现在拥有的:
带有用户故事/任务的 TFS
CC.net 构建服务器
我研究过 SSDT,看起来很棒!但是我怎样才能将它与 TFS 链接呢?
感谢阅读,
安迪。
【问题讨论】:
标签:
database
tfs
schema
release-management
【解决方案1】:
只要将您的数据库脚本(或 SSDT 项目,如果您选择移动该方向)签入 TFS 版本控制,changesets 和 work items 之间就会存在深层联系。在签入代码之前查看未决更改时,可以选择关联工作项(即用户故事或任务)。如果您使用的是 Visual Studio 2012,则关联工作项的效果如下:
如果您通过Windows Explorer 签到,这就是它的样子:
【解决方案2】:
对彼此独立的系统进行更改可能会带来很多复杂性。我发现的最佳解决方案涉及创建“功能切换”,以便您在部署后启用或禁用功能。看看持续交付作为一个主题。 Jez Humble 就这个主题写了一篇很棒的 book。
在某些情况下,数据库架构更改可能比仅启用或禁用一项功能更复杂。我建议使用扩展/收缩模型。您可以提前将任何新结构添加到数据库中,并以非破坏性的方式将其部署到生产中。然后,当您启用依赖于该结构的功能时,它就已经存在了。如果您需要在删除某些内容后清理数据库架构,那么您可以在带外执行“合同”循环以及其他软件更改以减少测试的表面积。