2015-02-23 60 views
0

在TFS(2013 Update 4)中,我試圖編寫一個PowerShell腳本來複制與構建綁定的修改後的SQL文件。如果知道更改集編號,我可以獲取並複製相應的文件,這通常足夠了(當構建由合併觸發時,我可以使用TF_BUILD_SOURCEGETVERSION環境變量)。但是,偶爾會有一些與TFS中的構建相關的變更集。獲取與生成相關聯的變更集

使用內部版本號,我如何獲得變更集列表?

+0

這是爲了發佈目的?如果是這樣,通過在發佈過程中使用SSDT和發佈數據庫架構,您將會得到更好的服務。 – 2015-02-23 22:52:03

+0

@DanielMann是的,它將作爲構建後腳本運行。也許我們會變得更好,但是流程(和DBA)規定我們必須通過手動創建的(由DBA)部署腳本集來處理SQL部署(模型更改,數據更新,流程更改等)。 DBA使用我們在網絡文件夾中提供的文件來創建腳本。現在,團隊負責人必須手動收集列表,並手動複製文件。我只想要消除我們的手動過程,因爲它會比改變DBA的操作方式容易得多。 – 2015-02-23 22:54:48

回答

0

您需要使用您的版本號來查找以前的版本號。然後,您將有一個開始變更集(從以前的版本)到當前變更集(當前版本)。

然後,您可以使用API​​來找出所有干預的變更集。

0

所以我在最後一次參與中做了這個,實質上我們通過獲取所有與SQL相關的文件來獲得每一個構建並生成一個包含每個文件,名稱,版本以及最重要的信息的csv文件和該文件的MD5哈希。然後在每個部署中,我們創建/更新/插入到我們的數據庫中的特殊部署表中,針對該數據庫所有SQL「運行」。然後,我們的構建腳本實際上只是生成csv文件,但我們的部署腳本具有智能和檢查功能,以查看csv文件與目標數據庫中是否發生了任何更改,並且僅應用更改(新SQL,使用新MD5更改SQL)。所以我們基本上使用兩個腳本。我不能分享劇本,但你有想法。另外,我會看看亞歷山大 Automating SQL Server Database Deployments: Scripting Details這篇文章,他解釋了很多關於數據庫遷移的內容。