如何撤消上一个添加迁移命令?
Posted
技术标签:
【中文标题】如何撤消上一个添加迁移命令?【英文标题】:How do I undo the last Add-Migration command? 【发布时间】:2014-02-14 05:35:33 【问题描述】:我已经使用Add-Migration
命令创建了一个迁移,但我想更改该迁移的名称。如何撤消迁移命令,以便使用新的所需名称重新生成它?
是否只是删除生成的文件的问题,或者这可能是个坏主意?
【问题讨论】:
【参考方案1】:只需使用命令:
Update-Database nameMigration -context nameContext
然后
Remove-migration -Context nameContext
【讨论】:
【参考方案2】:如果您尚未使用Update-Database
执行迁移,您可以使用相同的名称再次运行Add-Migration
(您可能需要使用-Force
)重新执行脚手架。这在Add-Migration
命令的输出中注明。
【讨论】:
这不是一个好的解决方案,因为这不会恢复 ApplicationDbContextModelSnapshot @***er 你是对的,所以回复***.com/a/46921867/690958 是更好的解决方案 也可以清理文件吗?对我来说,它离开了迁移文件,但使用了空的 Up() 和 Down() 方法。【参考方案3】:EntityFrameworkCore 2.0 附带模型快照。您需要运行删除迁移命令才能更新模型快照。我已经读过,如果您手动删除迁移,EF Core 将识别任何更新并为您还原快照,但这对我不起作用。
https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/migrations
https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet#dotnet-ef-migrations-remove
【讨论】:
【参考方案4】:如果您没有使用过Update-Database
,您可以删除迁移文件。如果您已经运行了更新,您应该使用 Update-Database -TargetMigration "NameOfPreviousMigration"
回滚它,然后删除迁移文件。
参考:
http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/
【讨论】:
如果是第一次添加迁移呢? @Jimmyt1988,使用 Update-Database –TargetMigration: $InitialDatabase 然后删除呢?我不明白。然后删除什么? @tnk479 迁移文件。编辑使其更清晰 很遗憾看到旧版本的 EF(如 EF 6)没有drop-database
和 remove-migration
命令【参考方案5】:
通过此命令更新您上一次完美迁移:
Update-Database –TargetMigration
【讨论】:
【参考方案6】:只需使用命令
Remove-migration
它将删除最后添加的迁移并更新快照。它不会影响数据库,因此您必须首先回滚数据库。
【讨论】:
仅在 EF Core 中。 我希望它和drop-database
命令一起出现在 EF 6 中。我太习惯了【参考方案7】:
要添加到 @Ben 的答案,当使用 dotnet ef
命令种类时,这是您需要的删除命令:
dotnet ef migrations remove
这将删除您的上次迁移并更新模型快照。
【讨论】:
以上是关于如何撤消上一个添加迁移命令?的主要内容,如果未能解决你的问题,请参考以下文章