目前,我們正在CI/CD部署之外手動運行數據庫腳本(SQL Server 2012)。我們可以使用TFS 2015 Update 3自動化部署數據庫更改的方式(包括工具集)是什麼?使用TFS 2015部署數據庫更改有哪些不同的方法?
回答
實際上有兩種方法,這兩種方法都與TFS協同工作。真正的TFS只是簡化了您將用於更新數據庫的任何腳本的執行,包括您的自定義手工腳本。
有一種基於狀態的方法,它使用比較技術來查看VCS/dev/test/staging數據庫並將其與生產進行比較。 SQL Source Control和Redgate Software的DLM自動化套件也是如此,其他比較工具也是如此。你要做的是使用命令行或編程接口來設置源和目標,捕獲輸出,然後在發佈過程中將其用作工件。我可能會將該工件的審閱作爲流程中的腳本選擇。
請注意,基於狀態的比較不能很好地解決一些問題。重命名,拆分,合併,數據移動等等。有些比較工具可以解決這個問題,有些則沒有。請注意這可能是一個問題。如果你有一個更成熟的數據庫,也許沒有,但你應該考慮這一點。 SQL源代碼管理允許自定義遷移腳本,它可以處理這些問題。
另一種方法是腳本運行器或遷移策略,其中您對開發數據庫所做的每個更改都會被捕獲爲有序腳本,並且框架會按順序執行這些操作(如果需要)。這是一些人的首選,因爲您可以確切地看到在開發和部署時將執行哪些代碼。來自Redgate Software,Liquibase,Rails Migrations,DBUp,FlywayDB的ReadyRoll都使用這種策略。
這些都不是好或壞。兩者都有工作,都有優點和缺點,但真正的選擇歸結於您的舒適度和偏好。
披露:我爲Redgate Software工作。
如果部署數據庫更改意味着使用Team Foundation Server中的Team Foundation Build使用SQL Server數據庫項目(.sqlproj文件)。
有幾種方法可以做到這一點:
- 使用MSBuild任務的一些參數來構建過程中發佈的SQL項目 。
- 在您的sqlproj文件中添加一個部署目標,在生成 完成後運行目標。
- 或者在您的build 定義中添加「批處理腳本」步驟以運行「SqlPackage.exe」來發布
.dacpac
文件。
更多詳情請參考此博客:Deploying SSDT During Local and Server Build。
至於採用TFS2015,你也可以嘗試使用SQL Server Database Deployment任務。
使用此任務可將SQL Server數據庫部署到現有SQL 服務器實例。該任務使用DACPAC和SqlPackage.exe,其中 提供對數據庫創建和升級的細粒度控制。
- 1. 人們使用Node.js部署關係數據庫更改的方式有哪些?
- 2. 使用Python部署數據庫更改
- 3. TFS數據庫部署解決方案
- 4. SQL Server數據庫更改部署
- 5. 加快從數據庫檢索數據的不同方法有哪些?
- 6. 與TFS 2015(內部部署)的互動
- 7. 什麼是使用SQL Server部署數據庫更改的簡單方法?
- 8. 使用TFS將SQL項目部署到Azure SQL數據庫的方法
- 9. 如何在TFS 2015中使用部署代理(更新3)?
- 10. 在node.js中使用require()函數有哪些不同的方法?
- 11. 部署Typo3數據庫更改
- 12. 使用不同的方法將ODBC數據庫分發到不同的機器有哪些缺陷和優點?
- 13. 使用WebDeploy部署數據庫更新
- 14. TFS部署不使用WebDeploy
- 15. 將Lightswitch項目數據庫更改部署到現有數據庫的正確方法是什麼?
- 16. SharePoint中生產部署的方法有哪些?
- 17. 部署CLR時從TFS部署數據庫失敗
- 18. 更換光標有哪些不同的方法?
- 19. PHP使用哪些數據庫共享相同(或大部分)的SQL語法?
- 20. 使用CI來部署數據庫更改
- 21. 調用函數有哪些不同的方法?
- 22. 使用自動部署從TFS創建本地數據庫
- 23. 如何使用TFS 2010部署網站和數據庫項目?
- 24. 在Windows中使用目錄有哪些不同的方法?
- 25. 有哪些方法可用於監視SQL數據庫記錄?
- 26. 使用VB.Net部署Access數據庫,但數據庫不被部署
- 27. 使用TFS 2015構建和部署Web應用程序構建
- 28. TFS 2010/VS 2010:將數據庫項目更改部署到測試環境
- 29. 無法部署數據庫項目 - VSDBCMD部署沒有看到明顯的
- 30. 數據庫部署的架構更改/更新腳本