我们有一个流程,当开发人员更改或添加数据库脚本并将其签入项目时。在部署时,发布管理器需要知道哪些工作项已针对它签入了数据库脚本。有没有一种方法可以让我们在 TFS 中查询或创建自定义报告,以获取在变更集中具有特定文件扩展名 (.sql) 的文件的工作项列表。这样,发布经理将获得一份工作项列表,然后她可以将这些工作项提供给 DBA 进行分析、检查并应用于服务器。
我们正在使用 TFS 2008。
我们有一个流程,当开发人员更改或添加数据库脚本并将其签入项目时。在部署时,发布管理器需要知道哪些工作项已针对它签入了数据库脚本。有没有一种方法可以让我们在 TFS 中查询或创建自定义报告,以获取在变更集中具有特定文件扩展名 (.sql) 的文件的工作项列表。这样,发布经理将获得一份工作项列表,然后她可以将这些工作项提供给 DBA 进行分析、检查并应用于服务器。
我们正在使用 TFS 2008。
安装最新的电动工具。然后你可以运行这个快速的 Powershell 脚本:
Get-TfsItemHistory $/project/*.sql -r -version D6/1/2009~ |
%{ $_.workitems } | %{ $_.id } | select -unique | sort
(根据需要调整项目名称和日期)
虽然这对于人工辅助代码审查非常有用,但我强烈警告不要使用它来实际构建部署脚本。如果开发人员忘记将他的签入与工作项相关联,或者如果他之前签入了他的错误修复所依赖的 SQL 文件,那么您将推出一组不一致的更改。最好让您在测试环境中使用的部署脚本尽可能地匹配您的生产部署。
您是否查看过新的GDR R2 数据库项目(Visual Studio 2008 团队版的免费下载)?
这种类型的项目最初是 Visual Studio 数据库版本的一部分。
它能够从现有数据库中导入模式、执行模式比较、支持多个目标(系统测试、UAT、生产等)、执行 TSQL 静态代码分析以及生成独立的部署工件。
我不是报告作者,但我认为您可能可以从 tfswarehouse 生成自定义报告,您可以在其中过滤扩展。但这只是一个假设。
也许您可以编写一个自定义签入策略,根据文件扩展名向适当的人发送电子邮件。这似乎是使用策略的一种非常繁重且不恰当的方式,但它可能会起作用。
只是一些没有可验证数据支持的想法。:D
您可以利用构建事件并让它指向您的自定义 Web 服务,该服务可以检查应用的变更集列表。这可以反过来对 TFS 进行查找以获取文件名,然后可以生成工作项。这意味着对 TFS API 的了解,但它们是不言自明的。这些事件是通过警报编辑器配置的,我相信它是 TFS 电动工具的一部分。我现在有这样的东西,它可以汇总已完成的工作并更新我们的外部时间跟踪系统。