Como habilitar migrações do Code First Entity Framework para Windows Azure ao publicar a partir do controle de origem?

StackOverflow https://stackoverflow.com//questions/23013671

Pergunta

Tenho um projeto que estou publicando no Azure automaticamente por meio do controle de origem.Configurei o Azure para ter uma cadeia de conexão adequada para o contexto da estrutura da entidade.Preciso executar automaticamente as migrações no banco de dados do Azure associado ao site.

Eu sei que há uma opção na caixa de diálogo de publicação, mas preciso adicionar manualmente qualquer mágica que aconteça no web.config para informar ao Azure para aplicar as migrações.O que é necessário para que o Azure execute migrações do controle de origem e, se isso não for possível, existe outra maneira?

Estou usando o EF 6.

Foi útil?

Solução

Você precisa configurar seu contexto para Migrar em execução.Você precisa fazer isso apenas uma vez por processo em execução, então um construtor estático no contexto é um lugar bastante decente para colocá-lo

static MyContext()
{
    Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Data.Migrations.Configuration>());
}

Certifique-se também de que uma cadeia de conexão esteja configurada no Azure.

Se você estiver usando migrações automáticas (o que é uma má ideia em um site implantado), você também precisará delas habilitadas

Outras dicas

Para executar tais scripts de migração eu recomendo usar o Azure WebJobs: http://www.hanselman.com/blog/introductingwindowszurewebjobs.aspx

Azure WebJobs, é um agendador para executar scripts como .bat, .exe, etc. Ele basicamente funciona como cron em máquinas UNIX, mas oferece Ui intuitiva e fácil de usar.Então, para o caso @Romoku, ele poderia criar um aplicativo de console.Isso usa o EF 6.0 e tudo o que o .NET oferece para agendar suas migrações e rastrear logs dos Opearations.Ele funciona na mesma máquina e ambiente que o site está sendo executado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top