2013-02-13 165 views
5

我當前的C#項目開發環境是Visual Studio,帶有SQL Server數據庫並使用VisualSVN連接到我的SVN存儲庫。要管理我的存儲過程,視圖等的修訂,我將ALTER腳本保存到由我的SVN客戶端監視的文件夾中,以便將它們包含在存儲庫中。將存儲過程提交到SVN存儲庫

我已簽出這樣一個(How to keep Stored Procedures and other scripts in SVN/Other repository?Is there a SVN plugin for SQL Server Management Studio 2005 or 2008?)一些(現在年紀大了)的職位,並已經看到了這些工具的建議:http://www.red-gate.com/products/sql-development/sql-source-control/http://www.zeusedit.com/agent/ssms/ms_ssms.html

因爲我很少使用DB端編程的項目,所以這從來沒有成爲一個主要麻煩(一些命名模式的文件夾中的十幾個腳本沒有太多手動管理),但我剛剛繼承了一個項目有幾百個視圖和1000多個存儲過程,這些從未包含在版本控制中。

我的問題是:

做別人遵循什麼程序來管理他們的SQL Server代碼的版本 - 有沒有一個公認的,聰明或其他明顯的方法,我在這裏失蹤?我目前正在傾向於購買上述工具之一 - 但在我這樣做之前,我正在尋求社區的建議。

我意識到這可能會導致一個工具推薦,而不是一個代碼解決方案,但發佈到SO,因爲我認爲這是適當的人羣來問這個。

回答

1

我一直在維護一個數據庫,其中包含大約800多個數據庫對象。正如你所描述的,我們總是將數據庫對象腳本化到一個svn監視的文件夾中。我們在這種方法中遇到了一些問題,主要是人們忘記編寫新的或修改過的對象。在這一天結束的時候,它對我們的項目來說並不是一個大問題,但是你可能會有所不同。

我們已經研究了幾個工具,但他們總是假定您從頭開始,我們有將近10年的歷史,我們希望保留。最後,我們最終只能回到基於文本的手動解決方案。它便宜又容易。

您可能想要考慮的另一個選項是設置Visual Studio數據庫項目。它將編寫所有對象的腳本並提供一些部署選項。我的觀點是,我們厭倦了爲了我們的口味過於緊密地集成在一起 - 我們有一些關於鏈接數據庫的命名參考,它只是不會放棄。

+0

嘗試玩VS DB項目,但遇到了你所描述的問題。還嘗試過AgentSVN的演示,努力讓自己的工作按照我想要的方式工作(可能是試圖強制它以我期望的方式工作,而不是按照預期的方式工作)。堅持一個真正的觀看腳本文件夾,並從那裏加載/編輯。 – Matthew 2013-02-18 17:51:51

+0

我應該補充說,應該可以將現有的存儲庫遷移到類似redgate的東西。我在幾年前討論了他們的技術支持的可能性: 1.你有他們的工具從你的分區創建一個新的初始倉庫 2.重新構建現有的倉庫以匹配與他們相同的外觀 3.切換他們的工具指向你的新外觀回購 – 2013-03-06 22:27:32

2

我會建議你去像redgate工具一樣的東西,並以同樣的方式對待你的C#源代碼對待任何SQL數據庫;手動跟蹤ALTER語句會讓你失望,因爲修改的數量增加了。不能說zeus編輯工具,而是使用了redgate之一,它「正常工作」 - 以及使用這樣的工具就是它可以管理你的遷移腳本,這樣你就可以對你的開發版本進行一系列的更改,然後生成一個更新腳本來更新你的測試數據庫等,包括數據變化,這是最大的PITA手動管理。

另一件需要考慮的事情是,即使更改的次數不頻繁,並且您手動跟蹤ALTER語句,但如果其他人最終在同一個項目上工作,該怎麼辦?現在你有另一個潛在的管理不善的腳本....

無論如何,讓我們知道你如何繼續前進,並祝你好運!

+0

腳本在文件夾中正確修訂和控制(即,我將它們編輯爲源文件和SVN修訂版),因此最後一個問題不是問題。當我有一些時間(和S/W預算)時,我想我會重新討論REDHAT的工具 - 很好聽從實際使用它的人。感謝您的迴應 - +1! – Matthew 2013-02-18 17:54:13