Comment activer les migrations de Code Première entité d'entité pour Windows Azure lors de la publication à partir du contrôle de la source?

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

Question

J'ai un projet que je publie automatiquement à Azure via le contrôle de la source.J'ai configuré Azure pour avoir une chaîne de connexion appropriée pour le contexte-cadre d'entité.Je dois exécuter automatiquement les migrations contre la base de données Azure associée au site Web.

Je sais qu'il y a une option dans la boîte de dialogue de publication, mais j'ai besoin d'ajouter manuellement quelle que soit la magie dans le Web.config pour dire à Azure d'appliquer les migrations.Ce qui est nécessaire pour avoir une migration d'exécution Azure à partir du contrôle de la source et si cela n'est pas possible, existe-t-il d'une autre manière?

J'utilise EF 6.

Était-ce utile?

La solution

Vous avez besoin de configurer votre contexte pour migrer.Vous devez ne pas faire cela qu'une fois par processus en cours d'exécution, un constructeur statique sur le contexte est un endroit assez décent pour le mettre

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

Assurez-vous également qu'une chaîne de connexion est configurée à Azure.

Si vous utilisez des migrations automatiques (qui est une mauvaise idée dans un site déployé), vous aurez également besoin de ceux activés

Autres conseils

Pour exécuter de tels scripts de migration, je vous recommanderais d'utiliser Azure Webjobs: http://www.haselman.com/blog/introducingwindowsazurewebjobs.aspx

Azure Webjobs, est un planificateur pour exécuter des scripts tels que .bat, .exe, etc. Il fonctionne essentiellement comme Cron sur des machines UNIX mais offre une interface utilisateur intuitive et facile à utiliser.Donc, pour l'affaire @romoku, il pourrait créer une application de console.Cela utilise EF 6.0 et tout ce que .NET propose de planifier ses migrations et des journaux de suivi des operations.Il fonctionne sur la même machine et l'environnement que le site Web fonctionne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top