Anon Dev
Anon Dev

Reputation: 1411

How to re-create initial migration on the same .cs file

As common in EF Code First I've generated an "Initial Create" migration file where is located an outdated model of my db (I'm developing the app so the model is still changing). Now I have a "new model" defined in my code and instead of creating a new migration for that I just want to update the already existing file, because it still is the initial create migration.

I've tried using this without any luck

Update-database -targetmigration $initialcreate

It returns

Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration.
You can use the Add-Migration command to write the pending model changes to a code-based migration.

I also tried this one, but it's always creating a new .cs file

Add-Migration InitialCreate

I'll appreaciate your help

Upvotes: 13

Views: 33806

Answers (5)

Rusty Nail
Rusty Nail

Reputation: 2710

This worked for me:

Add-Migration Zero -project <Project> -StartUpProject <Project>

Where <Project> is your Targeting assembly/project

Use:

get-help add-migration

for more help.

Update the Database the same way:

Update-Database -project <Project> -StartUpProject <Project>

Upvotes: -1

snnpro
snnpro

Reputation: 307

Just delete the initial migration files from the 'Migrations' folder and retry.

Upvotes: 3

m.f
m.f

Reputation: 99

Try updating your database by writing Update-Database in Package Manager Console instead.

Upvotes: 1

Teten Riswandi
Teten Riswandi

Reputation: 101

My Project is Solved.
Run in Package Manager Console:

  1. Drop-Database
  2. Remove-Migration
  3. Add-Migration InitialCreate
  4. update-database

Upvotes: 10

Anon Dev
Anon Dev

Reputation: 1411

Here you can see how I solved this.

Be careful with this approach because in my scenario I'm still in development phase so I do not need to keep the database nor the data.

If you want to overwrite the current "InitialCreate" file and re-generate the DB, follow these steps:

1) Run in Package Manager Console:

Add-Migration InitialCreate -force

2) Delete the physical database (use SSMS, T-SQL or your prefered)

3) Run in Package Manager Console:

Update-Database -TargetMigration:0 | update-database -force | update-database -force

If you do not care about the current "InitialCreate" file itself, want to create a new one and re-generate the DB, follow these steps:

1) Delete current "InitialCreate" .cs file

3) Run in Package Manager Console:

Add-Migration InitialCreate

4) Delete the physical database (use SSMS, T-SQL or your prefered)

4) Run in Package Manager Console:

Update-Database -TargetMigration:0 | update-database -force | update-database -force

Upvotes: 14

Related Questions