Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add-Migration while there are explicit migrations pending

So I have a basic problem trying to generate a migration when I don't have a DB in sync (up to the latest migration, in fact, have no DB at all) and have already made substantial changes to my model.

This are the specific details:

  1. Have a sequence of explicit migrations.
  2. Have no database. In short, have lots of pending changes.
  3. Made changes to the models/context.
  4. When trying to Add-Migration, it will complain saying precisely that explicit migrations are pending.
  5. If I try to execute the migration (and bring my DB in sync), either via Update-Database or migrate.exe, it will fail (after applying explicit migrations successfully), and automatic migrations are not enabled.
  6. I don't want to enable automatic migrations either (to prevent any schema changes to be committed and go unaccounted in code.)

I realize that after the failure in #5 I can now run #4. Then re-try #5 and voilá.

My Question is if this is the expected approach to solve this silly situation.

like image 694
Fernando Espinosa Avatar asked Sep 05 '14 14:09

Fernando Espinosa


Video Answer


1 Answers

I would use the following approach.

First you need to apply migrations and specify the last one.

PM> Update-Database -TargetMigration AnyMigrationName

# It updates database to a migration named "AnyMigrationName"
# This will apply migrations if the target hasn't been applied or roll back migrations
# if it has

When your local database is updated you simply add new migration.

PM> Add-Migration NewMigrationName

# it scaffolds a new migration named "NewMigrationName" 

Looking for a good reference I found these blog posts about EF Migrations that can help you a lot. They cover many questions and EF Migrations and a Merge Conflict and EF Migrations Command Reference in particular.

like image 163
Ilya Palkin Avatar answered Sep 20 '22 01:09

Ilya Palkin