Nous envisageons d'utiliser des migrations basées sur le code EF 4.3.1, mais nous ne savons pas comment intégrer les migrations avec notre méthodologie de développement/déploiement actuelle ...EF Migrations - comment gérer pendant le développement et le déploiement?
L'application en question est une application WPF de bureau , chaque bureau ayant sa propre instance SQL Server (chacune avec 4 bases de données distinctes). Il est déployé dans un environnement «de terrain» sans support informatique local. Toute migration de base de données doit être effectuée à l'aide de scripts SQL exécutés par le programme d'installation (probablement InstallShield). Il n'y aura personne disponible qui peut exécuter une commande à une invite PMC pour mettre à niveau la base de données lorsqu'elle est déployée/mise à niveau à un emplacement sur le terrain. Ainsi, la «sortie» finale de EF Migrations doit être un ensemble de scripts SQL, que l'installateur va appliquer de manière sélective.
De plus, nous avons plusieurs développeurs qui effectuent des changements de base de données simultanés. Il n'y a pas de DBA. Chaque développeur vérifie simplement les modifications de code (modèle) apportées à TFS, et la prochaine fois qu'il obtient get-latest, les modifications apportées au modèle provoquent automatiquement la création d'une nouvelle base de données sur son système de développement. Alors, comment pouvons-nous faire en sorte que chaque développeur effectue ses propres migrations locales (plutôt que de supprimer/recréer ses bases de données locales), puis de gérer/consolider/combiner ces migrations? Et qu'en est-il des collisions? Pendant les tests de développement et les tests unitaires, chaque développeur peut supprimer sa base de données locale (entière) plusieurs fois au cours d'une seule vérification de caisse/vérification. Cela fonctionne très bien avec Code First, car la base de données est automatiquement reconstruite lorsque l'application est redémarrée. Mais cela signifie que la table _MigrationHistory de la base de données est également supprimée. Comment allons-nous gérer ceci? N'avons-nous pas besoin de l'historique de la migration de chaque système de développement? Si non, où/comment détectons-nous les changements globaux qui doivent être appliqués au système fourni? Je vois l'utilité d'utiliser Migrations pour gérer les mécanismes de migration d'une base de données, mais ce qui n'est pas clair, c'est comment en tirer parti sans introduire un goulot d'étranglement centralisé dans le cycle de développement. perdant ainsi l'un des avantages clés de Code First.
Tout aperçu/conseil serait grandement apprécié!
DadCat