【发布时间】:2014-02-14 05:35:33
【问题描述】:
我已经使用Add-Migration 命令创建了一个迁移,但我想更改该迁移的名称。如何撤消迁移命令,以便使用新的所需名称重新生成它?
是否只是删除生成的文件的问题,或者这可能是个坏主意?
【问题讨论】:
标签: entity-framework entity-framework-5 entity-framework-migrations
我已经使用Add-Migration 命令创建了一个迁移,但我想更改该迁移的名称。如何撤消迁移命令,以便使用新的所需名称重新生成它?
是否只是删除生成的文件的问题,或者这可能是个坏主意?
【问题讨论】:
标签: entity-framework entity-framework-5 entity-framework-migrations
只需使用命令:
Update-Database nameMigration -context nameContext
然后
Remove-migration -Context nameContext
【讨论】:
如果您尚未使用Update-Database 执行迁移,您可以使用相同的名称再次运行Add-Migration(您可能需要使用-Force)重新执行脚手架。这在Add-Migration 命令的输出中注明。
【讨论】:
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
【讨论】:
如果您没有使用过Update-Database,您可以删除迁移文件。如果您已经运行了更新,您应该使用 Update-Database -TargetMigration "NameOfPreviousMigration" 回滚它,然后删除迁移文件。
参考:
http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/
【讨论】:
drop-database 和 remove-migration 命令
通过此命令更新您上一次完美迁移:
Update-Database –TargetMigration
【讨论】:
只需使用命令
Remove-migration
它将删除最后添加的迁移并更新快照。它不会影响数据库,因此您必须首先回滚数据库。
【讨论】:
drop-database 命令一起出现在 EF 6 中。我太习惯了
要添加到 @Ben 的答案,当使用 dotnet ef 命令种类时,这是您需要的删除命令:
dotnet ef migrations remove
这将删除您的上次迁移并更新模型快照。
【讨论】: