2012-01-03 51 views
0

我想知道是否可以限制VS2010數據庫項目生成的部署腳本,以便它僅包含已修改的數據庫對象,而不是整個刪除和創建序列。使用vs2010中的數據庫項目進行數據庫部署和應用發佈補丁

例如,在結合連續更改後,下一個版本腳本只能包含已修改的存儲過程,函數或表。我試圖取消選中「總是重新創建數據庫」選項。但它只是爲整個數據庫創建一個腳本。

我試圖找到類似的問題,我發現一些接近我需要的東西,但仍然沒有解決我的問題。

+0

我從來沒有使用VS2010數據庫項目,所以我不能真正回答那裏,但我*可以*告訴你,我已經使用Redgate SQL比較完成此任務在過去。 http://www.red-gate.com/products/sql-development/sql-compare/ – rejj 2012-01-03 06:12:38

+0

你有沒有試過部署一個數據庫項目?你有沒有研究過它? – 2012-01-03 18:44:52

回答

1

我們跟蹤所有的變化用手偏好和控制的原因,並保持一個腳本,更新數據庫(我有一個概括我們的腳步答案here on SO),但我們也使用展鵬的SQL PackagerSQL CompareSQL Data Compare產品我們的一些需求。

它們起初價格昂貴,但在我們的組織中有超過自己的報酬。

+0

您能否爲我提供您所談論的資源?讓我知道... – bhushan1980 2012-01-05 15:59:03

+0

@ bhushan1980:我已經更新了與產品鏈接和我們的stackoverflow問題的答案。 – 2012-01-05 16:38:07

0

問題是,這根本不起作用,因爲它無法處理每個定義的字段的任何類型的重命名。該向導無法知道某個字段是否已重命名,或者字段已丟失並生成了不相關的字段。像計算(初始)值的stuf也不能被處理。

因此,這個方法只適用於退化的邊緣情況,因此即使在中型項目上也不會長期工作,對不起。

+0

謝謝。在VS2010中,當我構建數據庫項目時,它具有數據庫中每個對象的架構,並且我可以實際編輯IDE中的SP/UDF。正是這些變化,我想跟蹤並生成僅用於項目或解決方案中已更改的對象的腳本。可以做到嗎?到目前爲止,它會創建一個拖放腳本並創建整個數據庫。我是否需要更改任何設置來執行此操作? – bhushan1980 2012-01-05 15:53:26

+0

不,不能真正做到。 RedGate SchemaComapre非常擅長。最後,可悲的是,這不是適當的基礎設施。 – TomTom 2012-01-05 16:05:30

1

通過將「編譯」項目(.dbschema文件)與要部署到的數據庫進行比較,然後創建更改腳本來部署數據庫項目。關於如何創建變更腳本有很多選項,但基本要素是始終創建「實時」變更腳本。它只會包含部署工具認爲不同的內容。

+0

謝謝。在VS2010中,當我構建數據庫項目時,它具有數據庫中每個對象的架構,並且我可以實際編輯IDE中的SP/UDF。正是這些變化,我想跟蹤並生成僅用於項目或解決方案中已更改的對象的腳本。可以做到嗎?到目前爲止,它會創建一個拖放腳本並創建整個數據庫。我是否需要更改任何設置來執行此操作?我將繼續在網上尋找資源以獲取更多信息。如果在源代碼控制下,MS Build是否提供了任何設置來獲取已更改的腳本? – bhushan1980 2012-01-05 15:58:09

+0

你的設置設置錯了。在「部署」選項卡下檢查您的項目設置。您必須設置「每次重新創建數據庫」的設置。另外,請確保您在項目設置中使用「項目設置」而不是「我獨立的沙箱環境」。 – 2012-01-05 17:57:05

相關問題