2017-07-13 76 views
0

我的問題是這樣的: 哪些是開發團隊管理SQL變化的最佳設置?如何設置展鵬SQL源控制與持續集成

我們的團隊由4個開發人員,每個都有自己的數據庫副本。 將SQL /應用程序更改提交給我們的TFS服務器時,我們希望確保任何構建錯誤不會傳播給其他開發人員。所以,我們將實施持續集成來協助解決這個問題。

的想法是, 1.SQL和修改應用程序代碼都致力於TFS。 2.中央數據庫獲取SQL更新,並構建應用程序。 3.單元測試在構建服務器上執行。 4.如果這些步驟中的任何一個失敗,則拒絕簽入,並且數據庫將回滾到提交之前的狀態。

什麼是建立我們的展鵬SQL代碼來實現這一目標的最佳方式是什麼?

回答

0

可以使用Database Project。它可以包含整個數據庫模式和存儲過程。在構建期間,它將驗證存儲過程是否與模式匹配。

然後在構建定義中啓用門控簽入選項,只有在提交的更改合併併成功構建時才接受簽入。

對於寫入到數據庫中的數據,它是根據你的測試方法,你可以設置方法來刪除數據;如果測試失敗,或者你不應該寫一個真正的數據庫。相反,你應該模擬數據庫類。這樣你實際上不必連接和修改數據庫,因此不需要清理。

對於您可以參考以下文章瞭解更多信息:

enter image description here

+0

@Faithypop有你在上面的解決方法解決您的問題?任何更新? –

3

如果你想使用SQL源控制,根據您的要求,這是一個可能的設置要考慮。

對於每個顯影劑機:

在構建服務器:

最後可能會非常棘手。我誠實地喜歡並推薦使用分支,而不是依靠單箇中央數據庫。通過這種方式,每個開發人員都可以完全獨立工作,並且只有在每個單獨分支上的工作經過驗證後,您纔可以在主分支中合併新的更改。

如果您想進一步實施部署,則可以使用Redgate DLM Automation Deployment創建發行版數據庫包,並直接從構建服務器或使用發行工具(如Octopus Deploy)將數據庫更改部署到生產環境。

最後,我也建議你看看Redgate ReadyRoll特別是如果你正在考慮遷移第一種方法數據庫更改。

正如你所看到的,有使用展鵬的工具來管理數據庫變更不同的方式並沒有將它們設置沒有單一的最好方式。它總是取決於你需要解決的具體要求和問題。

希望這會有所幫助。