參考資料:
https://www.yoyomooc.com/yoyomooc/52.keeping-domain-models-and-database
EF Core刪除遷移的命令是Remove-Migration。一次只刪除一個遷移,並且僅刪除尚未應用到數據庫的最新遷移。如果強行刪除已經應用到數據庫的遷移,會拋出異常。
刪除尚未應用到數據庫的最新遷移
直接運行Remove-Migration命令即可。
刪除已經應用到數據庫的遷移
假設我們已經按順序應用了Migration1、Migration2和Migration3,想要刪除Migration2和Migration3。
首先要撤銷遷移對數據庫造成的更改。即我們需要回滾Migration2和Migration3的更改,再執行遷移Migraiton1,將數據庫的狀態和當前需要回滾的模型狀態搞成一致。實現方法很簡單,想要回滾Migration2和Migration3,我們直接執行Update-Database Migration1即可。因為2和3是在1之后應用的,所以執行該指令可以直接撤銷2和3的更改。EF Core還會從__EFMigrationsHistory表中刪除2和3的遷移記錄。
然后需要刪除2和3的Migration代碼文件。不應手動刪除,應當使用命令Remove-Migration 文件名,即:
Remove-Migration Migration3
Remove-Migration Migration2
