Search code examples
entity-frameworkentity-framework-4database-migrationentity-framework-migrations

EF Migrations: Rollback last applied migration?


This looks like a really common task, but I can't find an easy way to do it.

I want to undo the last applied migration. I would have expected a simple command, like

PM> Update-Database -TargetMigration:"-1"

Instead, all I can come up with is:

PM> Get-Migrations

Retrieving migrations that have been applied to the target database.
201208012131302_Add-SystemCategory
201207311827468_CategoryIdIsLong
201207232247409_AutomaticMigration
201207211340509_AutomaticMigration
201207200025294_InitialCreate

PM> Update-Database -TargetMigration:"CategoryIdIsLong"

(At least I can use just the name, skipping the timestamp...)

Is there an easier way?


Solution

  • As of EF 5.0, the approach you describe is the preferred way. So

    PM> Update-Database -TargetMigration:"NameOfSecondToLastMigration"

    or using your example migrations

    PM> Update-Database -TargetMigration:"CategoryIdIsLong"

    One solution would be to create a wrapper PS script that automates the steps above. Additionally, feel free to create a feature request for this, or better yet, take a shot at implementing it! https://github.com/dotnet/ef6