Migrationen in TeamumgebungenMigrations in Team Environments

Wenn Sie mit Migrationen in Team Umgebungen arbeiten, achten Sie besonders auf die Modell Momentaufnahme-Datei.When working with Migrations in team environments, pay extra attention to the model snapshot file. Diese Datei kann Ihnen mitteilen, ob die Migration Ihres Teamkollegen ordnungsgemäß mit Ihrem zusammengeführt wird oder ob Sie einen Konflikt auflösen müssen, indem Sie die Migration neu erstellen, bevor Sie Sie freigeben.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.

ZusammenführenMerging

Wenn Sie Migrationen von ihren Teamkollegen zusammenführen, treten möglicherweise Konflikte in der Modell Momentaufnahme-Datei auf.When you merge migrations from your teammates, you may get conflicts in your model snapshot file. Wenn beide Änderungen nicht miteinander verbunden sind, ist die Zusammenführung trivial, und die beiden Migrationen können nebeneinander bestehen.If both changes are unrelated, the merge is trivial and the two migrations can coexist. Beispielsweise erhalten Sie möglicherweise einen Mergekonflikt in der Customer-Entitätstyp Konfiguration, der wie folgt aussieht: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

Da diese beiden Eigenschaften im endgültigen Modell vorhanden sein müssen, müssen Sie die Zusammenführung durch Hinzufügen beider Eigenschaften vervollständigen.Since both of these properties need to exist in the final model, complete the merge by adding both properties. In vielen Fällen kann Ihr Versionskontrollsystem solche Änderungen automatisch zusammenführen.In many cases, your version control system may automatically merge such changes for you.

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

In diesen Fällen sind die Migration und die Migration Ihres Teamkollegen voneinander unabhängig.In these cases, your migration and your teammate's migration are independent of each other. Da eine der beiden Optionen zuerst angewendet werden kann, müssen Sie keine weiteren Änderungen an der Migration vornehmen, bevor Sie Sie für Ihr Team freigeben.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.

Beheben von KonfliktenResolving conflicts

Manchmal tritt beim Zusammenführen des Modell Momentaufnahme-Modells ein echter Konflikt auf.Sometimes you encounter a true conflict when merging the model snapshot model. Beispielsweise können Sie und Ihr Teamkollegen die gleiche Eigenschaft umbenennen.For example, you and your teammate may each have renamed the same property.

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

Wenn diese Art von Konflikt auftritt, beheben Sie diese, indem Sie die Migration neu erstellen.If you encounter this kind of conflict, resolve it by re-creating your migration. Folgen Sie diesen Schritten:Follow these steps:

  1. Abbrechen des Merge und Zurücksetzen auf das Arbeitsverzeichnis vor dem MergeAbort the merge and rollback to your working directory before the merge
  2. Entfernen der Migration (behalten Sie jedoch Ihre Modelländerungen bei)Remove your migration (but keep your model changes)
  3. Zusammenführen der Änderungen Ihres Teamkollegen in Ihrem ArbeitsverzeichnisMerge your teammate's changes into your working directory
  4. Erneutes Hinzufügen der MigrationRe-add your migration

Anschließend können die beiden Migrationen in der richtigen Reihenfolge angewendet werden.After doing this, the two migrations can be applied in the correct order. Die Migration wird zuerst angewendet, und die Spalte wird in Aliasumbenannt. Anschließend wird Sie von der Migration in usernameumbenannt.Their migration is applied first, renaming the column to Alias, thereafter your migration renames it to Username.

Ihre Migration kann für den Rest des Teams sicher freigegeben werden.Your migration can safely be shared with the rest of the team.