出于某种原因,我的迁移似乎已经混乱/损坏/无论如何。我现在只想重新开始,那么有没有办法完全撤消所有迁移,擦除历史记录并删除迁移代码,所以我又回到了原点?
例如)PM> Disable-Migrations
或 Rollback-Migrations
我不想“更新”到原始迁移步骤(即类似于 InitialSchema
目标),因为我再也找不到它了。
您可以使用以下方法回滚到任何迁移:
Update-Database -TargetMigration:"MigrationName"
如果要回滚所有迁移,可以使用:
Update-Database -TargetMigration:0
或同等学历:
Update-Database -TargetMigration:$InitialDatabase
在某些情况下,您还可以删除数据库和所有迁移类。
对于实体框架核心:
Update-Database -Migration:0
Remove-Migration
需要明确的是,如果使用 LocalDb,当您想从头开始时,只需通过数据库资源管理器删除数据库,然后在包管理器控制台中键入 enable-migrations -force
。不要通过 App_Data 文件夹删除数据库,否则您将拥有以下 issue。
Update-Database -Migration 0
Remove-Migration
文档在此处:https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell#update-database 和此处:https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell#remove-migration
我猜他们的文档写错了,对我来说我用过
Update-Database -Target MigrationName
enable-migrations
的状态。这些显然很有帮助,但是它们是否完成了 OP 的要求? (请不要回答“好吧,他接受了答案。”我试图理解这一点,而不是一个聪明人)。enable-migrations
并且您正在从头开始开发数据库,您只需遵循最后一句话:删除数据库和所有与迁移相关的代码。如果您开始对现有数据库使用迁移,则首先必须使用第二个或第三个命令还原所有迁移,然后删除MigrationHistory
表和所有与迁移相关的代码。它应该让你到达起始位置。您还可以从备份中启动数据库(在使用迁移之前)并删除所有与迁移相关的代码。-TargetMigration:0
的担忧