DiscontentDisciple
DiscontentDisciple

Reputation: 466

CodeFirst DB Migrations with Azure

I've so far been unsuccessful at getting automatic migrations to work from a Visual Studio Online Code Repo that's configured to automatically deploy to Azure.

There's a Similar Question here that's unanswered: EntityFramework Automatic Migrations with Azure Git Deployment

My issue right now, is that the databases get out of Sync between the local working copy and the Azure DB, so when the code deploys successfully, the application no longer functions, since the database is not updated to match the new classes.

I've tried Several approaches:

  1. Webapi.config updated to include a Migrator.

    var migrator = new DbMigrator(new Configuration());
    migrator.Update();
    
  2. Web.Config Updated to Include Migrate To Latest Version

    <add key="MigrateDatabaseToLatestVersion" value="true"/>
    
  3. Migrations Configuration Updated to Enable Automatic

    AutomaticMigrationsEnabled = true;
    
  4. Publishing Directly from Visual Studio Via the Publish Manager - This still doesn't execute the DB Updates on the Azure site. (Including Checking the Option Box to Execute Migrations)

Anyone been able to get this to work?

Edit: I've also tried this, unsuccessfully, as a post deploy work-around, but no luck either. http://robertgreiner.com/2012/05/using-entity-framework-database-migrations-to-update-a-remote-database/

Upvotes: 0

Views: 217

Answers (1)

DiscontentDisciple
DiscontentDisciple

Reputation: 466

I've Discovered what I believe to be the root cause (Code Wise, Actual Root Cause is I'm an idiot). I have configured in the web.config the LocalDB Client, to the migrations were all happening against that DB. Commenting out that DB and allowing the Update-Database Command in the package manager to run against the AzureDB updated the database on Azure correctly.

I'm still not totally sure why the migrations aren't working, but I'm suspecting it's due to the Web.Config File I'm deploying with the default DB set to something Azure doesn't know about (LocalDB).

So this is a work-around at least, while I fix my Web.Config Settings to deploy with the correct DB to Azure.

Upvotes: 1

Related Questions