在TFS(2013 Update 4)中,我尝试编写PowerShell脚本来复制绑定到构建的已修改SQL文件。如果我知道变更集编号,我可以获取并复制相应的文件,这通常就足够了(我可以在合并触发构建时使用TF_BUILD_SOURCEGETVERSION环境变量)。但是,偶尔会有一些与TFS中的构建相关联的变更集。
使用内部版本号,如何获取变更集列表?
答案 0 :(得分:0)
您需要使用您的内部版本号来查找以前的内部版本号。然后,您将拥有一个开始更改集(从上一个版本)到当前更改集(当前版本)。
然后,您可以使用API消除差距,找到所有干预的变更集。
答案 1 :(得分:0)
所以我在上次参与时已经做到了这一点,实质上我们通过每次构建获取所有SQL相关文件来解决它并生成包含有关每个文件,名称,版本以及最重要的信息的csv文件。 MD5哈希的文件。然后,在每个部署中,我们创建/更新/插入到我们的数据库中的特殊部署表中,对该数据库执行所有SQL“运行”。然后我们的构建脚本实际上只是生成csv文件,但我们的部署脚本具有智能和检查以查看csv文件与目标数据库中是否有任何更改,并且仅应用更改(新SQL,使用新MD5更改SQL)。所以我们基本上使用两个脚本。我不能分享脚本,但你有这个想法。亚历山大也在看这篇文章 Automating SQL Server Database Deployments: Scripting Details他解释了很多关于数据库迁移的内容。