14

我想我應該在開始我的項目之前想到這一點,但我已經成功地使用代碼優先方法構建並測試了一個迷你應用程序,並且我準備將其部署到生產Web服務器。部署實體框架代碼首先

我已將該文件夾移至我的登臺服務器,並且一切正常。我只是好奇,是否有一個建議的部署策略?

如果我進行了更改,我不想,如果重新啓動應用程序失去所有數據的應用程序。

如果我只是生成的代碼,第一個項目數據庫腳本,然後將其移動到我的服務器呀?

任何提示和指導鏈接將是有用的。

謝謝。

回答

5

其實數據庫初始化僅供發展。將這些代碼部署到生產環境是解決問題的最佳途徑。 Code-first目前沒有任何數據庫演變的方法,所以你必須在新版本之後手動將更改腳本構建到數據庫。最簡單的方法是在VS Studio 2010 Premium和Ultimate中使用數據庫工具。如果您將擁有一個包含舊架構的數據庫和一個包含新架構的數據庫,並且VS將爲您準備更改腳本。

+4

請原諒我的無知。但是,您能概述我將這個項目移到我的生產服務器上的步驟嗎? – KidCoke 2011-04-07 17:50:53

+1

我也想更多的信息,@Ladislav – billy 2011-05-18 18:14:02

+0

我也想更多的信息!在本地有限制,例如4k字符串限制(我需要max用於生產)...所以,我如何創建/獲取最終模式? – wil 2011-10-07 21:55:53

1

以下是我遵循的步驟。

  1. 評論了我使用的初始化策略。
  2. 除了EdmMetadata表並在Web服務器上運行它們之外,還爲所有表的Schema +數據生成數據庫腳本。 (當然,如果它是一個生產服務器,BE CAREFUL這個步驟。在我的情況下,在開發過程中,在生產和開發中的數據是相同的。)
  3. 提交我的解決辦法,以顛覆然後觸發TeamCity的構建,測試,並部署到Web服務器(當然,您將擁有自己的這一步的方法,但以某種方式將該網站部署到Web服務器)。
  4. 你們都完成了!需要僅用於開發

初始化和EdmMetadata表。

+0

是的,這實質上是手動完成Visual Studio數據庫項目爲您自動執行的方法。 http://kingdango.com/blog/2011/12/a-simple-solution-for-de-loying-code-first-model/ – kingdango 2011-12-07 04:16:03

+2

注意:您可以使用預處理器指令自動刪除SetInitializer http://msdn.microsoft .COM/EN-US /庫/ 4y6tbswk.aspx – 2012-02-03 17:09:22