2010-05-19 33 views
7

我剛開始使用VS2010數據庫項目來管理對現有數據庫的更新發布。如何設置我的部署選項以編寫Visual Studio 2010數據庫項目的增量發佈腳本?

我想要部署選項來生成一個腳本,該腳本將包含更改現有數據庫的命令,而不是創建一個全新的命令。

例如我有10個現有的表 - 其中一個我放入新版本,我創建了一些新的sprocs。我只想部署腳本的Drop表和創建過程命令。

我正在使用VS2010 Premium。

是否有建議的標準方法,我可以遵循管理項目中的DB從初始創建到增量發佈?

謝謝!

回答

5

項目的.sqldeployment文件中有一個「總是重新創建數據庫」。取消選中此選項將產生一個自動生成的SQL腳本,它將逐漸更新數據庫而不會首先丟棄它。

還有一個選項「生成目標數據庫中但不在數據庫項目中的對象的DROP語句」。如果您希望在數據庫項目中刪除表格,存儲特效等,則需要檢查該選項。這將刪除用戶可能自己創建的用於測試,調試等的任何表等。

要更改.sqldeployment文件中的選項。在Visual Studio中打開文件。在解決方案資源管理器中展開數據庫項目,雙擊.sqldeployment文件(它可能位於DB項目下的屬性文件夾中)。或者打開數據庫項目的屬性頁面,然後單擊「部署配置文件」旁邊的「編輯...」按鈕。選中或取消選中數據庫部署時所需的選項。

我用VSDBCMD.exe 1單擊建立&部署我創建的腳本。它工作得很好。 VSDBCMD使用.sqldeployment文件 - 默認的.sqldeployment文件在.deploymanifest文件中指定,但可以通過在執行VSDBCMD時將其指定爲參數來覆蓋。另外,我相信Visual Studio會在部署數據庫項目時使用VSDBCMD,但我只是假設情況是這樣,因爲功能幾乎完全相同。

+0

感謝您的信息亞當。那麼您將如何跟蹤數據庫的每個版本的整個生命週期?例如,如果我已經發布了5版本的數據庫,我該如何回滾到版本3?我有保存的基線創建腳本,然後保存每個自動生成的增量更新腳本嗎? – littlechris 2010-05-25 09:16:12

+1

我們將VS2010 DB項目中的所有SQL文件添加到版本控制中,並使用標籤來跟蹤每個版本。要回滾到版本3,只需同步到v3標籤。 你真的應該使用版本控制你的數據庫。 Jeff Atwood撰寫了2篇關於數據庫版本控制的博客文章,我會推薦閱讀 數據庫是否受版本控制? zttp://www.codinghorror.com/blog/2006/12/is-your-database-under-version-control.html 讓您的數據庫受版本控制http://www.codinghorror.com/blog/2008 /02/get-your-database-under-version-control.html – 2010-06-04 19:52:31

4

我在MSDN Forums上問了一個類似的問題,並被告知推薦的方法是使用VSDBCMD。基本上,您從數據庫項目輸出一個模式文件,其中包含有關數據庫的所有信息,然後運行VSDBCMD以將您的模式與目標數據庫進行比較。這反過來會創建腳本來將目標數據庫更新爲當前模式。

這種做法的理由是,僅僅因爲你和我可能會認爲我們知道自己的目標數據庫的模式是什麼樣的,我們真的不能肯定,直到我們讓VSDBCMD運行比較。誰知道,別人可能在我們不知情的情況下修改了目標數據庫中的模式,所以我們的變更腳本可能因某種未知原因而失敗。

我真的不是很滿意這種方法,並最終在必要時繼續使用手動編寫我的更改腳本的「舊方法」,但我迫切希望看到2010年是否有任何改變,更容易一起工作。我真的很希望看到一個簡單的API來完成VSDBCMD的功能,因此我可以將GUI集中在一起,以簡化升級目標(在我的情況下爲客戶端)數據庫,而無需運行升級的人員成爲DBA。

相關問題