Migrationen in Team UmgebungenMigrations in Team Environments

Beim Arbeiten im Team-Umgebungen mit Migrationen auch Sie besondere Sorgfalt walten, um die Snapshot-Modelldatei.When working with Migrations in team environments, pay extra attention to the model snapshot file. Diese Datei können Sie feststellen, ob Ihres Kollegen Migration ordnungsgemäß mit Ihren Instanzen-der zusammengeführt werden soll, wenn Sie einen Konflikt zu beheben, durch die Migration vor der Freigabe erneut erstellen müssen.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.

ZusammenführenMerging

Beim Zusammenführen von Migrationen von Ihre Teamkollegen darüber 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 nicht verbunden sind, die Zusammenführung ist trivial, und zwei Migrationen können parallel ausgeführt werden.If both changes are unrelated, the merge is trivial and the two migrations can coexist. Beispielsweise erhalten Sie möglicherweise einen Merge-Konflikt in der typenkonfiguration der Customer-Entität, die 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 beide 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 das Versionskontrollsystem solche Änderungen automatisch für Sie zusammengeführt.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 Ihres Kollegen Migration unabhängig voneinander.In these cases, your migration and your teammate's migration are independent of each other. Da diese zuerst angewendet werden konnten, müssen Sie weitere Änderungen vorzunehmen, 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

In einigen Fällen auftreten ein Konflikts "true", beim Zusammenführen 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, lösen Sie ihn nach 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. Die Merge- und Ausführen eines Rollbacks zu Ihrem Arbeitsverzeichnis vor der Zusammenführung AbbrechenAbort the merge and rollback to your working directory before the merge
  2. Entfernen der Migrations (behalten Sie jedoch Ihre modelländerungen)Remove your migration (but keep your model changes)
  3. Zusammenführen von Änderungen Ihres Kollegen in Ihrem ArbeitsverzeichnisMerge your teammate's changes into your working directory
  4. Fügen Sie die 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 problemlos mit dem Rest des Teams freigegeben werden.Your migration can safely be shared with the rest of the team.