2

如何管理您的SQL Server數據庫構建/部署/遷移的Visual Studio項目?我們有一個包含合理的數據庫部分(〜100個表格,〜500個過程/函數/視圖)的產品,因此我們需要能夠部署當前版本的新數據庫以及將舊數據庫升級到當前版本。目前,我們維護用於創建新數據庫和版本間遷移的獨立腳本。顯然不理想,但其他人如何處理?你如何管理你的sqlserver數據庫項目的新版本和遷移?

這對我們來說很複雜,因爲有很多客戶都有自己的數據庫實例,而不是說在我們自己的Web服務器上只有開發/測試/活動實例,而是圍繞管理dev/test/live必須相似。

更新:我寧願不使用任何專有產品,如展鵬的(雖然我一直聽說他們真的好,會考慮,作爲一個解決方案)。

回答

2

我們使用Red-Gate SQLCompare和SQLDataCompare處理這個問題。這個想法很簡單。通過比較產品,您可以將所選表(例如配置表)的架構或數據的完整映像保留爲腳本。然後,您可以將任何數據庫與腳本進行比較並獲取更改腳本。我們將腳本保存在我們的Mercurial源代碼控制和標籤(標籤)每個版本中。然後,支持人員可以獲取任何版本的腳本,並使用Redgate工具從頭開始創建或升級。

展鵬也有一個API產品,使您可以從您的代碼做比較功能。例如,這將允許您在安裝程序或產品本身中具有自動升級功能。我們經常將此用於我們的託管網絡應用程序,因爲它使我們能夠更全面地自動化推出過程。在我們的例子中,我們有一個MSBuild任務,支持可以執行自動的推出和升級。如果您分發給第三方,您必須爲包含該API的每個發行版支付一小筆額外的許可費用。

展鵬也有一個工具,自動打包數據庫安裝或升級。我們沒有使用這個版本,因爲我們發現對版本的腳本進行比較會給我們更多的靈活性。

展鵬工具還可以幫助我們在發展,因爲它們使瑣碎到源極細粒度地控制架構和配置數據(每個數據庫對象可以放在它自己的文件)

0

另外還有MS VSTS方法(2008年描述here),任何人都在2010年做這個很好的文章和使用這些工具的優點/缺點?

1

有人問SSDT項目出現之前,但是這絕對是我會去的今天,與結構DB改變手工編寫遷移腳本一起那裏是會影響數據的方式。

+0

感謝您的更新; SSDT看起來非常有用! – Sam 2013-06-26 00:32:43

相關問題