如何撤消上一个“添加迁移”命令?


Answers:


134

如果您没有使用过Update-Database,则可以删除迁移文件。如果您运行了更新,则应使用更新版本回滚,Update-Database -TargetMigration "NameOfPreviousMigration"然后删除迁移文件。

参考:

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


如果这是第一次添加迁移怎么办?
Jimmyt1988

@ Jimmyt1988,使用Update-Database –TargetMigration:$ InitialDatabase
Seraphim

然后删除吗?我不明白 然后删除什么?
tnk479 '18

@ tnk479迁移文件。编辑以使其更清晰
科林

伤心地看到,旧版本的EF(英孚一样6)不具有drop-databaseremove-migration命令
哈姆扎Khanzada

15

如果您尚未使用进行迁移Update-Database,则可以Add-Migration使用相同的名称再次运行(可能需要使用-Force),以重新执行支架。在Add-Migration命令的输出中对此进行了说明。


这不是一个好的解决方案,因为它将无法还原ApplicationDbContextModelSnapshot
Trojaner

@Trojaner你是对的,所以响应stackoverflow.com/a/46921867/690958是更好的解决方案
阿尔贝托·莱昂

11

只需使用命令

Remove-migration

它将删除最后添加的迁移并更新快照。它不会影响数据库,因此您必须首先回滚db。


5
仅在EF Core中。
约翰

我希望它与drop-database命令一起在EF 6中出现。.我也已经习惯了
Hamza Khanzada


3

要添加到@Ben的答案中,使用dotnet ef各种命令时,这是您需要的remove命令:

dotnet ef migrations remove

这将删除您的上一次迁移并更新模型快照。



0

只需使用命令:

Update-Database nameMigration -context nameContext

然后

Remove-migration -Context nameContext
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.