我正在使用實體框架6的MVC 5,自動遷移被禁用,沒有種子被使用,我正在腳本化我的更新到生產。實體框架6剛刪除我的數據庫?
我會舉起手來說我對MVC和EF相當陌生。
我剛上傳了一個新的代碼庫到生產環境中,忘記了模型已經改變。當我去登錄到新版本時,它會拋出錯誤頁面。好吧,我忘了編寫最新的遷移腳本 - 我這樣做了,連接到SSMS,發現數據庫沒有了。
輕微的恐慌,從備份恢復(我不是那麼愚蠢!)並應用遷移,一切都開始工作,因爲它應該。
爲什麼我的代碼在模型更改時刪除整個數據庫?如上所述,自動遷移被禁用,並且這種行爲在開發機器上不會發生,它們會拋出有關已更改模型的錯誤。
編輯補充:雖然看着費爾南達的回答初始化模式,他們沒有說「刪除數據庫,然後什麼也不做」。我的數據庫被丟棄了,MDF和LDF消失了,沒有任何事情是SSMS,沒有任何東西被重新創建。如果一個空白數據庫在它的位置被創建,我會理解更多。也就是說,用戶帳戶在數據庫上有DBO但不是主數據庫,所以可以刪除數據庫但不能創建新數據庫?
我不知道答案,但我總是確保將'Database.SetInitializer(null);'放在我的上下文類的OnModelCreating()中。 –
似乎謹慎。我覺得我的驚訝之處在於它不會在任何開發環境中發生。 – RemarkLima