Majid Shamkhani
Majid Shamkhani

Reputation: 859

Entity Framework 6 - Does not create tables when enabling Migrations

In my application I enable Code First Migrations with some migrations, Also I use SQL Server Compact for integration test.

When I run my tests, Entity Framework create an empty database and tries to run migration on that empty database and thrown The specified table does not exist.

Based on this report I think usage of Migration in Entity Framework 6 has changed.

I test all Database Initializer with Context.Database.Create(); but in all case tabale's never created.

Upvotes: 7

Views: 12866

Answers (5)

snnpro
snnpro

Reputation: 307

There may be previous migration files which the ide may be referring to mostly likely due to caching. Drop backup and drop target database if it exists, and drop the migration folder. Now add the migration and you will be good to go.

Upvotes: 1

Simple_tech
Simple_tech

Reputation: 49

In case someone still struggles to fix the issue.

The code that follows works for me: add-migration MyFirstMigration

Meanwhile add-migration "MyFirstMigration" with the migration name ramped in quote doesn't work.

Upvotes: 0

nad sid
nad sid

Reputation: 21

It does happens when adding model and running add-migration command.

Here is the simplest cause of this issue:

Add a newly added model property into IdentityDbContex class.

Here are the steps:

  1. create model
  2. add property into IdentityDbContex class
  3. run add-migration
  4. update-database

Upvotes: 0

Majid Shamkhani
Majid Shamkhani

Reputation: 859

I don't know that this is EntityFramework's bug or not, but when I made rename the namespace of Migration Configuration class from default (Projectname/Migrations) to any none default name, migration works well.

Upvotes: 18

mr100
mr100

Reputation: 4428

Context.Database.Create() will not execute migrations! It only creates empty db. To Update database from code to latest version you need to use DbMigrator.Update method:

var migrator = new DbMigrator(new MyMigrationsConfiguration());
migrator.Update();

Alternatively you might use MigrateDatabaseToLatestVersion

Database.SetInitializer(new MigrateDatabaseToLatestVersion<BlogContext, Configuration>());

It is described in details here: http://msdn.microsoft.com/en-us/data/jj591621.aspx#initializer

Upvotes: 2

Related Questions