2015-01-05 103 views
0

我在Codefirst一個新手,我不明白它是如何工作正常。 我通過「附加遷移」命令創建3遷移,遷移1..3並出具了「更新數據庫」相對更新。EF codefirst遷移它是如何工作在生產環境中

我在我的遷移目錄和自定義數據庫初始化(我工作的MySQL),我爲了將初始數據播種創造了Configuration.cs文件。

我不知道在生產環境中的場景,我沒有任何數據庫尚未後面會發生什麼。

誰負責創建和更新數據庫?遷移是否一個接一個地執行?

您能否給我建議這個過程中生產的工作方式和共享有用的鏈接?

問候, 羅伯託

+0

你是什麼意思,你沒有生產環境中的數據庫? – ilans

+0

嗨,我從頭開始在生產中,我剛剛部署了該軟件包。當我第一次調用遷移過程時調用上下文類時,我會在幕後考慮,但以何種方式? –

+0

你應該從你的初始化函數調用'CreateIfNotExists'函數,或者使用一個初始化函數,它完全符合我不推薦的 - 這使我很麻煩。 – ilans

回答

0

假設你正在使用Automatic Migrations - 所有遷移被稱爲一個接一個,在創建它們的順序排列。它們的Up函數被調用。之後,您的Configuration課程上的Seed功能應該啓動。

每個移民有一個排序的文件名裏的時間戳的,就像這樣:

enter image description here

如果您正在創建大量數據庫出單上下文類的像我這樣做了,你擔心無法控制遷移,您可以使用手動遷移。它被稱爲DbMigrator

見我/人回答here如何使用它。

+0

嗨,感謝您的解釋,如果我將自動遷移設置爲false,那麼非dev /本地環境中的行爲是什麼? –

+0

我並不總是使用'自動遷移'。在一些數據庫中,我使用它,有些則沒有。含義 - 如果您不使用它,則不會發生任何事情...如果您像我一樣從單個上下文類中創建大量數據庫,並且擔心無法控制遷移,則可以使用手動遷移。它被稱爲'DbMigrator'。 – ilans

+0

請參閱我在答案中提供的鏈接 - 它顯示了手動遷移的選項 - 以實現完全控制,並且不擔心發生「自動遷移」時可能發生的不需要的遷移和內容。 – ilans

相關問題