How do you downgrade a Entity Framework 5 migration in Visual Studio 2012?

20,196

Solution 1

After almost giving up with researching on Google I managed to find this quote from here:

Which Specifies:

Let’s say we want to migrate our database to the state it was in after running our AddBlogUrl migration. We can use the –TargetMigration switch to downgrade to this migration.

Run the Update-Database –TargetMigration: AddBlogUrl command in Package Manager Console. This command will run the Down script for our AddBlogAbstract and AddPostClass migrations.

If you want to roll all the way back to an empty database then you can use the Update-Database –TargetMigration: $InitialDatabase command.

Solution 2

First get the name of the migration that was applied before the one you want to downgrade by issuing the Get-Migrations command.

PM> Get-Migrations
Retrieving migrations that have been applied to the target database.
201508242303096_Bad_Migration
201508211842590_The_Migration_applied_before_it
201508211440252_And_another

This list shows the migrations listing the most recent applied migration first. Pick the migration that occurs in the list after the one you want to downgrade, ie the one applied before the one you want to downgrade.

Update-Database –TargetMigration: "<the migration applied before it>"

All migrations applied after the one specified will be down-graded in order starting with the latest migration applied first.

Share:
20,196
Jamie Street
Author by

Jamie Street

Full Stack Developer at Campus Society, a social network for university students. SOreadytohelp

Updated on September 04, 2020

Comments

  • Jamie Street
    Jamie Street over 3 years

    I've noticed that when I create a code first database migration using add-migration it generates a Down() method as well as an Up() method.

    How do I tell my database to downgrade?

  • Alamakanambra
    Alamakanambra about 3 years
    Now in EFcore it is bit different: Get-Migration (no plural) and Update-Database "name of migration you want to apply" (no TargetMigration parameter)