亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

重置實體框架遷移

重置實體框架遷移

MMTTMM 2019-08-06 12:54:28
重置實體框架遷移我已經搞砸了我的遷移,我用于IgnoreChanges初始遷移,但現在我想要刪除所有遷移,并開始使用所有邏輯進行初始遷移。當我刪除文件夾中的遷移并嘗試Add-Migration它并不生成一個完整的文件(它是空的 - 因為我上次沒有做任何更改,但現在已刪除,遷移)。是否有任何Disable-Migrations命令,所以我可以重新運行Enable-Migrations?
查看完整描述

3 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

你需要 :

  1. 刪除狀態:刪除項目中的遷移文件夾; 和

  2. 刪除__MigrationHistory數據庫中的表(可能在系統表下); 然后

  3. 在程序包管理器控制臺中運行以下命令:

    Enable-Migrations -EnableAutomaticMigrations -Force

    使用或不使用 -EnableAutomaticMigrations

  4. 最后,你可以運行:

    Add-Migration Initial


查看完整回答
反對 回復 2019-08-06
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

問題:您已經搞砸了遷移,并且想要在不刪除現有表的情況下重置它。

問題:由于EF希望從頭開始創建表,因此無法使用數據庫中的現有表重置遷移。

該怎么辦:

  1. 從Migrations_History表中刪除現有遷移。

  2. 從“遷移”文件夾中刪除現有遷移。

  3. 運行add-migration Reset。這將在您的Migration文件夾中創建一個包含創建表的遷移(但它不會運行它,因此不會出錯。)

  4. 您現在需要在MigrationHistory表中創建初始行,以便EF具有當前狀態的快照。如果您應用遷移,EF將執行此操作。但是,由于數據庫中已存在表,因此無法應用剛剛進行的遷移。所以進入遷移并注釋掉“Up”方法中的所有代碼。

  5. 現在運行update-database。它將應用遷移(而不是實際更改數據庫)并在MigrationHistory中創建快照行。

您現在已重置遷移,并可能繼續正常遷移。


查看完整回答
反對 回復 2019-08-06
  • 3 回答
  • 0 關注
  • 550 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號