How do I undo the last Add-Migration command?

2020-02-07 14:30发布

问题:

I have created a migration using the Add-Migration command, but I'd like to change the name of that migration. How can I undo the migration command, so that I can regenerate it using the new desired name?

Is it just a matter of deleting the generated files, or this could be a bad idea?

回答1:

If you haven't used Update-Database you can just delete the migration file. If you've run the update you should roll it back using Update-Database -TargetMigration "NameOfPreviousMigration" then delete the migration file.

Reference:

http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/



回答2:

If you haven't executed the migration yet with Update-Database, you can run Add-Migration again with the same name (you may need to use -Force) to re-execute the scaffolding. This is noted in the output of the Add-Migration command.



回答3:

Just use command

Remove-migration

It will remove last added migration and update snapshot. It will not affect database so you have to rollback db in first place.



回答4:

With EntityFrameworkCore 2.0 comes the model snapshot. You will need to run the remove migration command in order to update the model snapshot. I have read that EF Core will recognize any update and revert the snapshot for you if you manually delete the migration but this has not worked for me.

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



回答5:

Update your last perfect migration via this command :

Update-Database –TargetMigration


回答6:

To add to @Ben 's answer, when using the dotnet ef command variety this is the remove command you need:

dotnet ef migrations remove

Which will remove your last migration and update the model snapshot.