实体框架 - 重新开始 - 撤消/回滚所有迁移

drz*_*aus 167 entity-framework ef-migrations entity-framework-4.3

出于某种原因,我的迁移似乎是混乱/损坏/无论如何.我只是想重新开始,所以有没有办法彻底撤消所有迁移,删除历史记录,删除迁移代码,所以我回到原点?

例如)PM> Disable-MigrationsRollback-Migrations

我不想"更新"到原始的迁移步骤(比如InitialSchema目标),因为我再也找不到它了.

Lad*_*nka 352

您可以使用以下命令回滚到任何迁移:

Update-Database -TargetMigration:"MigrationName"
Run Code Online (Sandbox Code Playgroud)

如果要回滚所有可以使用的迁移:

Update-Database -TargetMigration:0
Run Code Online (Sandbox Code Playgroud)

或同等学历:

Update-Database -TargetMigration:$InitialDatabase 
Run Code Online (Sandbox Code Playgroud)

在某些情况下,您还可以删除数据库和所有迁移类.

  • 像往常一样,你是最好的. (6认同)
  • @MichaelBlackburn:我的意思是我见过的所有其他解决方案都会告诉你更新回你的第一个**命名的**迁移,但我的问题是没有最初的_clean_迁移更新(返回)到 - 我只是想摆脱所有的迁移,无论方法如何.因此,这个答案解决了我对`-TargetMigration:0`的关注 (4认同)
  • 我不明白,OP*具体*说"我不想"更新"到原始的迁移步骤(即类似于InitialSchema目标),因为我再也找不到它了." 这个答案如何做他想要的?我期望发生的事情是,我将处于一个我必须再次"启用 - 迁移"的状态.这些显然是有帮助的,但他们是否完成了OP的要求?(请不要回答"好吧,他接受了答案."我试图理解这一点,而不是一个聪明人). (2认同)

And*_*ski 11

对于Entity Framework Core:

Update-Database -Migration:0
Remove-Migration
Run Code Online (Sandbox Code Playgroud)


Bri*_*den 8

需要说明的是,如果使用LocalDb,当您想从头开始时,只需通过数据库资源管理器删除数据库,然后键入enable-migrations -force程序包管理器控制台.不要通过App_Data文件夹删除数据库,否则您将遇到以下问题.

  • 这样做时要小心,因为它会在没有警告的情况下覆盖您的Migrations\Configuration.cs! (2认同)