Hey all,

Am stuck with some code first migrations to Azure. Have Googled but not
found anything that seems to help.

Basically I've got the local stuff working, I understand the workflow. ie
Add-Migration name generates the code to upgrade the recent changes to the
model, and Upgrade-Database applies them to the local database.

What I can't figure out is how to tell Azure that I want it to drop my
database and start over. I've got that part working locally but when I
deploy to Azure it just ignores it.

Some of my current code (trying various things so this might not be the
best working example right now)

I have this in my Application_start

            Database.SetInitializer(new DatabaseSeeder());

            //Database.SetInitializer(new
MigrateDatabaseToLatestVersion<DomainDataContext, Configuration>()); //
tried this

            using (var db = new TotalPlayerKill.Models.DomainDataContext())
            {
                db.Database.Initialize(true);
            }

public class DatabaseSeeder :
DropCreateDatabaseAlways<Models.DomainDataContext>
    {
public DatabaseSeeder()
        {
            Database.SetInitializer<DomainDataContext>(null);

            try
            {
                using (var context = new DomainDataContext())
                {
                    if (context.Database.Exists())
                    {

((IObjectContextAdapter)context).ObjectContext.DeleteDatabase();

 ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                    }
                }
            }
            catch (Exception ex)
            {
                throw new InvalidOperationException("The
 ((IObjectContextAdapter)context).ObjectContext.DeleteDatabase() database
could not be initialized.", ex);
            }

        }

my Configuration class has these in the constructor too:
            AutomaticMigrationsEnabled = true;
            AutomaticMigrationDataLossAllowed = true;

Interestingly the catch in that try doesn't seem to fail, what does throw
an exception is when I try to access anything in the new model (that doesnt
exist because it wasn't migrate) thats when I see the exception.

I'm missing something. I'm going to look at the streaming logs while I run
this tonight but just thought I'd post this in case anyone has some good
resources on Azure that covers the more advanced Azure stuff.

I could always run some SQL directly on the db and drop the tables manually
but I was under the impression this could all be done via the various Azure
migration helpers/classes. (ie why doesn't my DropCreateDatabaseAlways
class Drop always???!)

Reply via email to