2016-08-24 43 views
1

我在我的Visual Studio數據項目中有一個__MigrationHistory表和一個migrations文件夾。我需要在git中切換到另一個分支來調查缺陷,因此我需要重置數據庫,但切換回來並繼續我的工作。開關分支機構以及如何使用EF代碼首先重置數據庫

這可能嗎?我擔心如果我嘗試解決如何重置數據庫以調查缺陷(即,從__MigrationHistory表中刪除我的遷移並刪除遷移文件)當我需要切換回我的分支時,我會放棄我的工作嗎?

這個問題的解決方案是什麼?試圖運行數據庫更新時,刪除在migrationhistory表

我得到下面的結果我的條目後

更新?我是否也需要刪除相應的遷移文件?

No pending explicit migrations. 
Running Seed method. 

二更新

備份數據庫和截斷migrationhistory表我收到以下錯誤

There is already an object named 'Customer' in the database. 

回答

1

要恢復數據庫到以前的版本在使用這個命令後包管理器:

Update-Database -TargetMigration "NameOfPreviousMigration"

實體框架在您的數據庫上運行Down遷移並保持_MigrationHistory爲您同步。應該不需要手動刪除記錄。

如果模型和數據庫不匹配,您將需要還原代碼,因爲實體框架將引發錯誤或嘗試更新數據庫(取決於您是否啓用自動遷移)。

當你完成後,運行Update-Database沒有-TargetMigration命令開關再次運行Up遷移

參考:

http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/