I have an issue which I could not find answer for across the web.
I am using CodeFirst EF 4.3.1 Migrations with MsSQL.
I have added several migrations and now I want to produce a script for upgrade/downgrade between two migrations.
For upgrade I run the following command which successfully reproduces an upgrade script:
PM> Update-Database -Script -SourceMigration:"201205161144187_AddPostAbstract" -TargetMigration:"201205161203310_BlogLimitsAndTableRename"
However, for downgrade I run the following command which fails with the following error:
PM> Update-Database -Script -SourceMigration:"201205161203310_BlogLimitsAndTableRename" -TargetMigration:"201205161144187_AddPostAbstract"
Scripting the downgrade between two specified migrations is not supported.
Any ideas how can I generate a downgrade script?
Thanks.
Reverting a Migration But, for some reason, you want to revert the database to the previous state. In this case, use the update-database <migration name> command to revert the database to the specified previous migration snapshot. > dotnet ef database update MyFirstMigration.
Run the Add-Migration InitialCreate command in Package Manager Console. This creates a migration to create the existing schema. Comment out all code in the Up method of the newly created migration. This will allow us to 'apply' the migration to the local database without trying to recreate all the tables etc.
There are four available main commands. Enable-Migrations: Enables Code First Migrations in a project. Add-Migration: Scaffolds a migration script for any pending model changes. Update-Database: Applies any pending migrations to the database.
It looks like migration API expects that you want to do downgrade only from "last version".
If BlogLimitsAndTableRename
is your most recent migration (the last applied) you can simply run:
Update-Database -Script -TargetMigration:"201205161144187_AddPostAbstract"
If it is not your last migration you need to revert your development database to it first:
Update-Database -TargetMigration:"201205161203310_BlogLimitsAndTableRename"
and now you should be able to use the first command to get a script.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With