Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsque vous travaillez avec des migrations dans des environnements d’équipe, différents problèmes peuvent survenir lorsque des migrations sont ajoutées par plusieurs développeurs en même temps ; Notez que les migrations ne sont pas simplement des scripts SQL, mais incluent également un instantané du modèle au moment de cette migration.
Par exemple, imaginez que le développeur A et B créent des branches de travail en même temps et génèrent une migration dans leurs branches. Si le développeur A fusionne sa branche, puis que le développeur B effectue la même opération, la dernière migration (développeur B) a un instantané de contexte qui n’inclut pas les modifications apportées à la migration du développeur A. Cela peut entraîner diverses formes de corruption dans les migrations ultérieures.
Par conséquent, il est vivement recommandé de coordonner à l’avance et d’éviter de travailler simultanément sur les migrations dans plusieurs branches lorsque cela est possible.
Détection des arborescences de migration divergentes
Note
Cette fonctionnalité est introduite dans EF Core 11 à partir de la préversion-3.
À compter d’EF 11, l’instantané de modèle enregistre l’ID de la migration la plus récente. Cela signifie que si deux développeurs créent chacune une migration sur des branches distinctes, la fusion de ces branches génère un conflit de contrôle de code source dans le fichier d’instantané de modèle, car les deux branches modifient l’ID de migration le plus récent. Ce conflit est un signal important : il vous indique que les arbres de migration ont divergé, et l’un d’entre eux doit être éliminé avant de continuer.
Pour résoudre ce problème, suivez les étapes de résolution des arborescences de migration divergentes ci-dessous : abandonnez la fusion, supprimez votre migration (en conservant les modifications de votre modèle), fusionnez les modifications de votre collègue, puis rajoutez votre migration.
Résolution des arborescences de migration divergentes
Si, lors de la fusion d’une branche, une arborescence de migration divergente est détectée, résolvez-la en recréant votre migration. Suivez ces étapes :
- Annuler la fusion et revenir à votre répertoire de travail avant la fusion.
- Supprimez votre migration (mais conservez les modifications de votre modèle)
- Fusionner les modifications de votre collègue dans votre répertoire de travail
- Rajoutez votre migration
Après cela, votre migration est correctement basée sur toutes les migrations qui ont été ajoutées dans l’autre branche, et son instantané de contexte contient toutes les modifications précédentes. Votre migration peut désormais être partagée en toute sécurité avec le reste de l’équipe.