Entity framework 如何撤消上一个添加迁移命令?
我已经使用Entity framework 如何撤消上一个添加迁移命令?,entity-framework,entity-framework-5,entity-framework-migrations,Entity Framework,Entity Framework 5,Entity Framework Migrations,我已经使用addmigration命令创建了一个迁移,但是我想更改该迁移的名称。如何撤消迁移命令,以便使用所需的新名称重新生成它 这只是删除生成的文件的问题,还是这可能是个坏主意?如果您没有使用更新数据库,您可以删除迁移文件。如果已运行更新,则应使用updatedatabase-TargetMigration“NameOfPreviousMigration”回滚更新,然后删除迁移文件 参考: 如果尚未使用更新数据库执行迁移,则可以使用相同的名称再次运行添加迁移(可能需要使用-Force)以重新执
addmigration
命令创建了一个迁移,但是我想更改该迁移的名称。如何撤消迁移命令,以便使用所需的新名称重新生成它
这只是删除生成的文件的问题,还是这可能是个坏主意?如果您没有使用
更新数据库
,您可以删除迁移文件。如果已运行更新,则应使用updatedatabase-TargetMigration“NameOfPreviousMigration”
回滚更新,然后删除迁移文件
参考:
如果尚未使用
更新数据库执行迁移,则可以使用相同的名称再次运行添加迁移
(可能需要使用-Force
)以重新执行脚手架。这在添加迁移命令的输出中有所说明。EntityFrameworkCore 2.0附带了模型快照。您需要运行remove migration命令来更新模型快照。我已经了解到,如果手动删除迁移,EF Core将识别任何更新并为您还原快照,但这对我不起作用
要添加到@Ben的答案中,当使用dotnet ef
命令变体时,这是您需要的删除命令:
dotnet ef迁移删除
这将删除上次迁移并更新模型快照。只需使用命令即可
Remove-migration
它将删除上次添加的迁移和更新快照。它不会影响数据库,因此您必须首先回滚数据库。通过以下命令更新您上次的完美迁移:
Update-Database –TargetMigration
只需使用命令:
Update-Database nameMigration -context nameContext
然后
Remove-migration -Context nameContext
如果这是添加的第一次迁移呢?@Jimmyt1988,使用更新数据库–TargetMigration:$initialdatabase然后删除它?我不明白。然后删除什么?@tnk479迁移文件。编辑后可以清楚地看到旧版本的EF(如EF 6)仅在EF Core中没有删除数据库
和删除迁移
命令。我希望它与删除数据库
命令一起出现在EF 6中。。我太习惯了这不是一个好的解决方案,因为这不会恢复ApplicationDbContextModelSnapshot@Trojaner您是对的,因此响应是更好的解决方案。它还能清理文件吗?对我来说,它保留了迁移文件,但使用了空的Up()和Down()方法。