EF Core怎么删除迁移 EF Core删除迁移(Remove-Migration)教程

来源:这里教程网 时间:2026-02-21 17:36:42 作者:

EF Core 删除迁移不是简单删文件,关键在顺序和状态一致性。直接删迁移类或数据库记录容易导致模型与数据库脱节,后续迁移失败。

只删最后一次未应用的迁移

这是最常见也最安全的操作场景:刚执行 dotnet ef migrations add 生成了新迁移,但还没运行 dotnet ef database update

用命令 dotnet ef migrations remove 即可撤回上一次迁移文件 该命令会自动删除迁移类(.cs 文件)和快照(.Designer.cs 和 .ModelSnapshot.cs) VS 用户也可右键项目 → Entity Framework Core → 移除最后一次迁移

要删已应用到数据库的迁移

比如 MigrationA、MigrationB、MigrationC 已逐个更新进库,现在想彻底去掉 B 和 C。

先回滚数据库:运行 dotnet ef database update MigrationA,EF Core 会按顺序执行 B 和 C 的 Down() 方法,并从
__EFMigrationsHistory
表中清除这两条记录
再删代码文件:分别执行 dotnet ef migrations remove 两次(注意:必须先删 C,再删 B;不能跳过中间步骤) 删完后,当前模型应与 MigrationA 时完全一致,否则下次 add-migration 可能生成意外差异

清空全部迁移回到初始状态

适合开发早期重构模型,或想从头开始管理迁移。

先重置数据库:dotnet ef database update 0(会删掉所有表,慎用!) 再逐个删迁移文件:dotnet ef migrations remove 直到命令报错(说明已无迁移可删) 最后重新建初始迁移:dotnet ef migrations add InitialCreate

基本上就这些。核心就一条:数据库状态、迁移历史、代码模型三者必须对得上。删迁移不是目的,保持可追溯、可重复、可协作才是关键。

相关推荐