web-dev-qa-db-fra.com

AutomaticMigrationsEnabled false ou true?

Dans les projets EF, existe-t-il une meilleure pratique pour définir AutomaticMigrationsEnabled?

Plus de déclaration:

Dans notre équipe, après avoir modifié un modèle, nous exécutons généralement les commandes "add-migration" et "update-databse" dans la console du gestionnaire de packages. Cette erreur se produit lorsque d'autres développeurs exécutent le projet:

"Impossible de supprimer la base de données car elle est en cours d'utilisation"

Chaque fois que cela se produit, le premier modificateur doit Check In tout le projet et les autres doivent GET objets modifiés. Dans de nombreux cas, nous ne voulons pas archiver le modèle et la migration déjà créés!

Cette situation est agaçante, existe-t-il une solution à ce genre de problèmes. Merci d'avance.

31
Vahid Hassani

Les migrations automatiques font toute la magie pour vous mais elles ne permettent pas de versionner stricte (vous n'avez pas de migration fixe spéciale pour chaque version). Sans versioning stricte, vous ne pouvez pas suivre la version de votre base de données et vous ne pouvez pas faire de mises à niveau explicites (vous ne pouvez pas du tout faire de downgrades).

Si vous ne prévoyez pas d'utiliser la gestion des versions là où vous devez connaître la version de la base de données et si vous ne prévoyez pas d'utiliser la rétrogradation, vous pouvez simplement utiliser la migration automatique.

"Impossible de supprimer la base de données car elle est en cours d'utilisation"

Il semble que vous travaillez sur la base de données partagée = stopper. Chaque développeur doit utiliser sa propre base de données.

mais je ne veux pas extraire le modèle et la migration déjà créés!

C'est une meilleure pratique et si vous souhaitez continuer avec les migrations basées sur le code, vous devrez la suivre. Btw. il existe une pratique appelée "intégration continue" - dans une intégration continue, vous devez obtenir immédiatement après que la validation est correctement créée et réussit les tests.

46
Ladislav Mrnka

De: http://msdn.Microsoft.com/en-us/data/jj554735.aspx

Recommandation pour les environnements d'équipe

Vous pouvez intercaler des migrations automatiques et basées sur du code, mais cela n'est pas recommandé dans les scénarios de développement d'équipe. Si vous faites partie d'une équipe de développeurs qui utilisent le contrôle de code source, vous devez utiliser des migrations purement automatiques ou des migrations purement basées sur du code. Étant donné les limites des migrations automatiques, nous vous recommandons d'utiliser des migrations basées sur du code dans les environnements d'équipe.

12
Larry S