2014-10-05 31 views
2

當我發佈使用Web部署在Visual Studio中我看到像我的網站:什麼是增量數據庫發佈?

MySql.Data.MySqlClient is not supported for incremental database publishing. 

我想知道到底是什麼將這項技術做是否支持呢?

回答

2

增量數據庫發佈是一種部署功能,其中模式(新版本)的源代碼與實時數據庫模式(當前版本)進行比較,以創建更改腳本以將當前版本升級到新版本。

例如,如果您的模式有一個包含少量列的表,並且在源代碼中添加了新的列定義,那麼在發佈時它會創建一個腳本來將新列添加到表中。

不支持SQL Server以外的數據庫引擎也就不足爲奇了,因爲支持其他數據庫引擎的工作量很大。所有這一切意味着您必須自己同步數據庫更改。 MySQL可能會提供工具來幫助解決這個問題,但Visual Studio不會。

+0

所以其僅架構,它的更新,而不是內容重新創建數據庫的經更新的模式。我假設它從web.config中的連接字符串設置中找到數據庫的舊/新版本?有沒有辦法阻止它這樣做? – Steve 2014-10-05 22:20:38

+0

@Steve:如果源控制腳本包含任何內容,它只會更新內容。一個常見的例子是在源代碼的後期部署腳本中使用MERGE語句來維護查找表。如果你正在跟蹤的是模式,那麼所有將被更新的模式都是模式。至於獲取連接字符串的詳細信息等,這將取決於您如何跟蹤更改。一個數據庫項目? EF代碼優先模型?還有別的嗎?如果是數據庫項目,那麼項目屬性中可能有設置。 – David 2014-10-05 22:48:39

+0

它是一個MVC網站項目。沒有包括數據庫。雖然我有兩個.sql文件,它會掃描它嗎?我只是想確保它不會通過從我的本地測試數據中注入一堆垃圾來破壞我的生產數據庫。 – Steve 2014-10-05 22:51:06

1

增量數據庫發佈用於版本控制目的。 SVN無法真正處理像tfs可以支持的數據庫模式的版本控制。

如果您正在使用增量數據庫發佈,則可以設置爲保留當前數據庫並僅執行更新,或者始終重新創建數據庫。

我們假設你想聲明sql變量,如InitData,SeedData。

你可以做到這一點,你可以在發佈腳本之前和之後訪問。如果變量SeedData爲true,則可以在發佈後腳本中生成一些數據。

此處瞭解詳情:http://www.asp.net/web-forms/tutorials/deployment/web-deployment-in-the-enterprise/deploying-database-projects

編輯:這只是如果你選擇不發佈時

+0

只適用於數據庫項目的權利?其他像圖書館/網站是不考慮我假設 – Steve 2014-10-05 22:52:53

+0

是的,只爲數據庫項目。 – 2014-10-05 22:55:37