2017-09-26 164 views
0

我使用實體框架代碼優先遷移。在我的項目中已經有很多遷移,但不是最初的遷移。我有一個開發遷移項的開發數據庫。 我的問題是,有沒有辦法重新創建初始遷移CSV文件,例如創建另一個開發數據庫。重新創建初始實體框架遷移

+0

你是說你無意中刪除了一個移植或其他東西?應該不重要。如果您將連接字符串指向新的數據庫,則應該創建並匹配您的當前模型。另一種選擇,如果你只有一個DEV數據庫,你可以[重置遷移](https://weblog.west-wind.com/posts/2016/jan/13/resetting-entity-framework-migrations-to-a -clean-板岩)。 –

+0

不幸的是它已經在生產。我想通過更改連接字符串來設置新的testenvironment。數據庫無法創建,因爲一個(或多個)C#遷移文件丟失。所以update-database命令想要改變永遠不會創建的表的列。 – AlexwTT

回答

1

您可以強制遷移從頭開始創建數據庫:

Update-Database -SourceMigration $InitialDatabase 

這將導致創建的所有數據庫對象和要應用的遷移。見here。另一種方法是使用initializers。您可以暫時將其更改爲使用CreateDatabaseIfNotExists。我們所做的是通過web.config設置測試DEV環境,並在DEV中使用該初始化程序,否則在PROD中使用MigrateDatabaseToLatestVersionNullDatabaseInitializer