2

I am working on asp.net mvc with EF code first model. I am trying to apply migrations using EF code first to my project. I am using MySql database. currently i am using EF 4.3.1 version and mysql connector/.net of 6.6.4.0 version. I am successfully add migrations to my project that means i execute series of commands that gave no errors for me. I have followed these steps,

PM> Enable-Migrations PM> Add-Migration InitialMigration PM> update-database -verbose 

these steps create Migration folder to my project and inside Migration folder it creates configuration and timestamp_Initialmigration files, in configuration file i have added following code.

SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator()); 

after that i have added one field to my class like,

public int newprop{get; set;} 

after that i execute update-database -verbose command in PM console.

when i execute my application it throws an error like,

"Unknown column 'Extent1.newprop' in 'field list'"

please guide me why i am getting this error does i went to the wrong way please guide me.

2 Answers 2

1

If your not using automatic migrations

Database.SetInitializer(new MigrateDatabaseToLatestVersion());

 public class MyMigrationConfiguration : DbMigrationsConfiguration<MyDbContext> { public MyMigrationConfiguration() { AutomaticMigrationsEnabled = true; // Are you using this ????? AutomaticMigrationDataLossAllowed = true; } } 

Then you need to tell EF using the PM Commandlet to add another migration and update the database.

PM> Enable-Migrations //already done this ? PM> Add-Migration myLabel PM> Update-Database 

Search for "code based migrations" on web for help

Sign up to request clarification or add additional context in comments.

Comments

0

This is a bit late to answer OP... But since it pops up as my first hit on google, ill go ahead anyways :)

The problem here is, that there are a number of restrictions on MySQL as compared to MSSQL. * In particular with mysql on casesensitive filesystems (linux hosts), table names may not include capitalized letters. * Also keys are restricted to 767 bytes and should/must be integer types. * Then there is a problem in parts of the migration generators from Mysql.Data package. For instance when renaming, 'dbo' is not stripped away.

Have a look at this guide on insidemysql.com. It describes how to reconfigure the Aspnet.Identity stack for using int in the TKey typecast.

I have a project where i also have hooked into HistoryContext, allowing to alter structure of __MigrationHistory. It renames and resizes the table/columns. There's also the remake of IdentityConfig - so have a look at

  1. https://github.com/mschr/ASP.NET-MVC5.MySql-Extended-Bootstrap/tree/master/my.ns.entities/DbContexts/MigrationConfig
  2. https://github.com/mschr/ASP.NET-MVC5.MySql-Extended-Bootstrap/tree/master/my.ns.entities/IdentityConfig

Then hook it up with your context (see IdentityDbContext) and enable the mentioned MySqlMigrationScriptGenerator and HistoryContextFactory in your Migrations.Configuration class (see my IdentitiyMigrations.Configuration)

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.