Entity Framework - Start Over - Undo/Rollback All

2019-01-29 15:55发布

问题:

For some reason, my migrations appear to have been jumbled/corrupted/whatever. I'm at the point where I just want to start over, so is there a way to completely undo all migrations, erase the history, and delete the migration code, so I'm back to square one?

e.g.) PM> Disable-Migrations or Rollback-Migrations

I don't want to "update" to an original migration step (i.e. something like an InitialSchema target) because I can't find it anymore.

回答1:

You can rollback to any migration by using:

Update-Database -TargetMigration:"MigrationName"

If you want to rollback all migrations you can use:

Update-Database -TargetMigration:0

or equivalent:

Update-Database -TargetMigration:$InitialDatabase 

In some cases you can also delete database and all migration classes.



回答2:

To be clear, if using LocalDb, when you want to start from scratch just delete the database via the Database Explorer and then type enable-migrations -force in the Package Manager Console. Do not delete the database via the App_Data folder or you will have the following issue.



回答3:

For Entity Framework Core:

Update-Database -Migration:0
Remove-Migration


回答4:

Update-Database -Migration 0
Remove-Migration

The documentation is here: https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell#update-database and here: https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell#remove-migration