2015-09-28 192 views
0

我們有一個帶有本地數據庫的客戶端應用程序。偶爾我們需要更新數據庫,包括更改列,添加列等等。我們想要檢查應用程序是否在第一次部署數據庫時運行。如果沒有,請檢查更新。通過點擊一次部署數據庫更新最簡單的方法是什麼? 這是否可以將腳本部署到文件夾並讓本地應用程序檢查並運行?部署數據庫

回答

0

使用entity frameworkautomatic migrations開啓,並確保通過EF遷移處理數據庫的所有更改。

,當你決定改變服務器應用程序 - 您執行以下操作:

  1. 變化主要應用
  2. 更改客戶端應用程序架構
  3. 推新版本設定的版本是最新的 - 這樣一來,當用戶 啓動客戶端應用程序,除非最新版本是 下載並運行
  4. 將無法​​工作當下載版本時,啓動時運行EF遷移腳本。
+0

我應該多解釋一下。有兩個應用程序。一個是已經使用實體框架的網絡上的主要應用。然後還有另一個具有本地數據庫的應用程序,因爲它需要爲網絡外的客戶端脫機工作。當我們需要對其數據庫(客戶端)進行更改時,將變更部署到其數據庫的最簡單方法是什麼。我們將通過wcf進行溝通。 – Sirus

+0

我們使用clickonce發佈更新 – Sirus

+0

仍然不清楚 - 使用本地數據庫發佈應用程序更新?那麼一切都按我描述的那樣工作 - 讓該應用程序使用EF來管理數據庫模式,並通過發佈更新,您將通過自動遷移來促進對應用程序的所需更改 – avs099

0

我建議您包含更新數據庫的腳本。在腳本中包含一個版本號。還在數據庫中存儲版本號。讓應用程序檢查是否包含腳本。您可以使用某種模板名稱以通配符檢查它們,或將它們放入資源字符串中。如果有腳本,請將版本號與數據庫中的版本號進行比較,以確定是否需要執行腳本,如果是,請執行此操作,然後更新數據庫中的版本。

另一個提示 - 請不要將您的數據存儲在DataDirectory中,並依靠ClickOnce將其繼續前進。這很危險。查看this article,告訴您如何處理數據,以免它被ClickOnce更新所淹沒。