我已使用Add-Migration
命令创建了迁移,但我想更改该迁移的名称。如何撤消迁移命令,以便我可以使用新的所需名称重新生成它?
是否只是删除生成的文件,或者这可能是一个坏主意?
答案 0 :(得分:110)
如果您还没有使用Update-Database
,则可以删除迁移文件。如果您运行更新,则应使用Update-Database -TargetMigration "NameOfPreviousMigration"
将其回滚,然后删除迁移文件。
参考:
http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/
答案 1 :(得分:12)
如果尚未使用Update-Database执行迁移,则可以使用相同的名称再次运行Add-Migration(可能需要使用-Force)来重新执行脚手架。这在Add-Migration命令的输出中记录。
答案 2 :(得分:4)
使用EntityFrameworkCore 2.0来模型快照。您需要运行remove migration命令才能更新模型快照。我已经读过,如果您手动删除迁移,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
答案 3 :(得分:3)
只需使用命令
Remove-migration
它将删除最后添加的迁移并更新快照。它不会影响数据库,因此您必须首先回滚db。
答案 4 :(得分:1)
通过此命令更新上一次完美的迁移:
Update-Database –TargetMigration
答案 5 :(得分:0)
要添加@Ben的答案,当使用dotnet ef
命令变种时,这是您需要的删除命令:
dotnet ef migrations remove
这将删除您上次迁移并更新模型快照。
答案 6 :(得分:0)
只需使用命令:
Update-Database nameMigration -context nameContext
然后
Remove-migration -Context nameContext