Migrationen in Teamumgebungen

Achten Sie bei der Arbeit mit Migrationen in Teamumgebungen besonders auf die Momentaufnahmedatei für das Modell. Anhand dieser Datei können Sie feststellen, ob die Migration Ihres Teamkollegen sauber mit der Ihren zusammengeführt werden kann, oder ob Sie einen Konflikt lösen müssen, indem Sie Ihre Migration vor der Freigabe neu erstellen.

Zusammenführen

Wenn Sie Migrationen von Ihren Teamkollegen zusammenführen, ergeben sich möglicherweise Konflikte in der Momentaufnahmedatei Ihres Modells. Wenn die beiden Änderungen nichts miteinander zu tun haben, ist der Merge trivial und die beiden Migrationen können koexistieren. Sie können beispielsweise einen Mergekonflikt in der Konfiguration des Kundenentitätstyps erhalten, der wie folgt aussieht:

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

Da beide Eigenschaften im endgültigen Modell vorhanden sein müssen, schließen Sie den Merge ab, indem Sie beide Eigenschaften hinzufügen. In vielen Fällen kann Ihr Versionskontrollsystem solche Änderungen automatisch zusammenführen.

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

In diesen Fällen sind Ihre Migration und die Migration Ihres Teamkollegen voneinander unabhängig. Da jede der beiden Migrationen zuerst angewendet werden könnte, müssen Sie keine zusätzlichen Änderungen an Ihrer Migration vornehmen, bevor Sie diese für Ihr Team freigeben.

Beheben von Konflikten

Manchmal tritt beim Zusammenführen der Momentaufnahmedatei des Modells ein echter Konflikt auf. Sie und Ihr Teamkollege haben beispielsweise die gleiche Eigenschaft umbenannt.

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

Wenn diese Art von Konflikt auftritt, lösen Sie ihn durch erneutes Erstellen Ihrer Migration. Führen Sie folgende Schritte aus:

  1. Brechen Sie den Merge und den Rollback in Ihr Arbeitsverzeichnis vor dem Merge ab
  2. Entfernen Sie Ihre Migration (aber behalten Sie ihre Modelländerungen bei)
  3. Führen Sie die Änderungen Ihres Teamkollegen in Ihr Arbeitsverzeichnis zusammen
  4. Fügen Sie Ihrer Migration erneut hinzu

Danach können die beiden Migrationen in der richtigen Reihenfolge angewendet werden. Die Migration Ihres Teamkollegen wird zuerst angewendet, wobei die Spalte in Alias umbenannt wird, anschließend wird sie von Ihrer Migration in Benutzername umbenannt.

Ihre Migration kann sicher für den Rest des Teams freigegeben werden.