Migrations dans les environnements d’équipeMigrations in Team Environments

Lorsque vous travaillez avec des Migrations dans les environnements d’équipe, une attention supplémentaire dans le fichier de capture instantanée du modèle.When working with Migrations in team environments, pay extra attention to the model snapshot file. Ce fichier peut vous indiquer si la migration de votre coéquipier fusionne correctement avec les vôtres ou si vous avez besoin résoudre un conflit en recréant la migration avant de le partager.This file can tell you if your teammate's migration merges cleanly with yours or if you need to resolve a conflict by re-creating your migration before sharing it.

fusionMerging

Lorsque vous fusionnez des migrations à partir de vos collègues, vous pouvez obtenir des conflits dans votre fichier de capture instantanée du modèle.When you merge migrations from your teammates, you may get conflicts in your model snapshot file. Si les deux modifications ne sont pas liées, la fusion est simple et les deux migrations peuvent coexister.If both changes are unrelated, the merge is trivial and the two migrations can coexist. Par exemple, vous pouvez recevoir un conflit de fusion dans la configuration de type d’entité customer qui ressemble à ceci :For example, you may get a merge conflict in the customer entity type configuration that looks like this:

<<<<<<< Mine
b.Property<bool>("Deactivated");
=======
b.Property<int>("LoyaltyPoints");
>>>>>>> Theirs

Étant donné que ces deux propriétés doivent exister dans le modèle final, effectuer la fusion en ajoutant les deux propriétés.Since both of these properties need to exist in the final model, complete the merge by adding both properties. Dans de nombreux cas, votre système de contrôle de version peut fusionner automatiquement ces modifications pour vous.In many cases, your version control system may automatically merge such changes for you.

b.Property<bool>("Deactivated");
b.Property<int>("LoyaltyPoints");

Dans ce cas, votre migration et la migration de votre coéquipier sont indépendants de l’autre.In these cases, your migration and your teammate's migration are independent of each other. Étant donné qu’un d’eux peut être appliqué en premier, vous n’avez pas besoin d’apporter des modifications supplémentaires à votre migration avant de le partager avec votre équipe.Since either of them could be applied first, you don't need to make any additional changes to your migration before sharing it with your team.

Résolution des conflitsResolving conflicts

Parfois, vous rencontrez un conflit true lors de la fusion le modèle de capture instantanée du modèle.Sometimes you encounter a true conflict when merging the model snapshot model. Par exemple, vous et votre collègue chacun avez renommé la même propriété.For example, you and your teammate may each have renamed the same property.

<<<<<<< Mine
b.Property<string>("Username");
=======
b.Property<string>("Alias");
>>>>>>> Theirs

Si vous rencontrez ce type de conflit, résolvez-le en recréant votre migration.If you encounter this kind of conflict, resolve it by re-creating your migration. Procédez comme suit :Follow these steps:

  1. Abandonner la fusion et restauration dans votre répertoire de travail avant la fusionAbort the merge and rollback to your working directory before the merge
  2. Supprimer votre migration (mais conserver vos modifications de modèle)Remove your migration (but keep your model changes)
  3. Fusionner les modifications de votre coéquipier dans votre répertoire de travailMerge your teammate's changes into your working directory
  4. Ajoutez de nouveau votre migration.Re-add your migration

Après cela, les deux migrations peuvent être appliquées dans le bon ordre.After doing this, the two migrations can be applied in the correct order. Leur migration est d’abord appliquée, modification du nom de la colonne à Alias, par la suite votre migration renomme à nom d’utilisateur.Their migration is applied first, renaming the column to Alias, thereafter your migration renames it to Username.

Votre migration peut être partagée en toute sécurité avec le reste de l’équipe.Your migration can safely be shared with the rest of the team.