EntityFramework Core 删除迁移

发布时间 2023-05-26 16:05:36作者: netcore_vue

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