Migrations dans des environnements d’équipeMigrations in Team Environments

Lorsque vous utilisez Migrations dans les environnements d’équipe, une attention supplémentaire dans le fichier de capture instantanée de 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 idéal fusionne correctement avec les vôtres de 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 of if you need to resolve a conflict by re-creating your migration before sharing it.

fusionMerging

Lorsque vous fusionnez des migrations à partir de vos coéquipiers, vous pouvez obtenir des conflits dans votre fichier de capture instantanée de 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 triviale, 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, fin de 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 automatiquement fusionner 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 ces cas, la migration et la migration de votre idéal sont indépendants.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 apporter des modifications supplémentaires à la 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 du modèle d’instantané.Sometimes you encounter a true conflict when merging the model snapshot model. Par exemple, vous et votre idéal 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 genre de conflit, résolvez-le en recréant la migration.If you encounter this kind of conflict, resolve it by re-creating your migration. Procédez comme suit :Follow these steps:

  1. Abandon de 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 (en conservant vos modifications de modèle)Remove your migration (but keep your model changes)
  3. Fusionner les modifications de votre idéal 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 cette opération, les deux migrations peuvent être appliquées dans l’ordre approprié.After doing this, the two migrations can be applied in the correct order. Leur migration est appliquée en premier, 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.