Migrationen in TeamumgebungenMigrations in Team Environments

Bei der Arbeit mit Migrationen in teamumgebungen Achten Sie zusätzliche auf der Snapshot-Modelldatei.When working with Migrations in team environments, pay extra attention to the model snapshot file. Diese Datei können Sie erkennen, wenn Ihre Kollegin der Migration ordnungsgemäß mit dem eigenen zusammengeführt oder Sie einen Konflikt zu beheben, erstellen Sie Ihre Migration, bevor er freigegeben wird müssen.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

Beim Zusammenführen von Migrationen von Ihren Teamkollegen erhalten Sie möglicherweise Konflikte in Ihrem Modell Datenbankmomentaufnahme-Datei.When you merge migrations from your teammates, you may get conflicts in your model snapshot file. Wenn beide Änderungen unabhängig sind, die Zusammenführung ist einfach, und zwei livemigrationen können gleichzeitig vorhanden sein.If both changes are unrelated, the merge is trivial and the two migrations can coexist. Beispielsweise erhalten Sie möglicherweise ein Zusammenführungskonflikt in der typenkonfiguration der Customer-Entität, die folgendermaßen 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 sind müssen, führen Sie die Zusammenführung durch beide Eigenschaften hinzufügen.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 für Sie 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 Ihre Kollegin der Migration unabhängig voneinander.In these cases, your migration and your teammate's migration are independent of each other. Da es sich bei einem der beiden zuerst angewendet werden kann, müssen Sie keine weiteren Änderungen vornehmen, um die Migration, bevor er mit Ihrem Team freigegeben wird.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.

Lösen von KonfliktenResolving conflicts

Sie treten gelegentlich einen Konflikt mit "true", beim mergen der Modell-Momentaufnahme-Modell.Sometimes you encounter a true conflict when merging the model snapshot model. Angenommen, Sie und Ihre Kollegin möglicherweise jeweils die gleiche Eigenschaft umbenannt.For example, you and your teammate may each have renamed the same property.

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

Wenn Sie diese Art von Konflikt auftritt, müssen beheben Sie ihn, indem der Migration neu zu erstellen.If you encounter this kind of conflict, resolve it by re-creating your migration. Führen Sie folgende Schritte aus:Follow these steps:

  1. Abbrechen der zusammenführen und ein Rollback in Ihr Arbeitsverzeichnis vor der ZusammenführungAbort the merge and rollback to your working directory before the merge
  2. Entfernen Sie die Migration (aber behalten Sie Ihr Modell ändert)Remove your migration (but keep your model changes)
  3. Ihre Kollegin der Änderungen in Ihrem Arbeitsverzeichnis zusammenführenMerge your teammate's changes into your working directory
  4. Fügen Sie Ihre Migration erneut hinzu.Re-add your migration

Nachdem Sie auf diese Weise können die zwei Migrationen in der richtigen Reihenfolge angewendet werden.After doing this, the two migrations can be applied in the correct order. Ihre Migration wird zuerst angewendet, die Spalte umbenennen Alias, danach Ihre Migration benennt es um Benutzername.Their migration is applied first, renaming the column to Alias, thereafter your migration renames it to Username.

Die Migration kann mit dem Rest des Teams sicher freigegeben werden.Your migration can safely be shared with the rest of the team.