Udostępnij za pośrednictwem


Migracje w środowiskach zespołów

Podczas pracy z migracjami w środowiskach zespołowych zwróć szczególną uwagę na plik migawki modelu. Ten plik może powiedzieć, czy migracja twojego kolegi z zespołu jest czysta scalona z Twoimi lub jeśli musisz rozwiązać konflikt, ponownie tworząc migrację przed udostępnieniem.

Scalanie

Podczas scalania migracji z kolegów z zespołu mogą wystąpić konflikty w pliku migawki modelu. Jeśli obie zmiany nie są powiązane, scalanie jest proste, a dwie migracje mogą współistnieć. Na przykład w konfiguracji typu jednostki klienta może wystąpić konflikt scalania, który wygląda następująco:

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

Ponieważ obie te właściwości muszą istnieć w ostatnim modelu, zakończ scalanie, dodając obie właściwości. W wielu przypadkach system kontroli wersji może automatycznie scalić takie zmiany.

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

W takich przypadkach migracja i migracja kolegi z zespołu są niezależne od siebie. Ponieważ jeden z nich może zostać zastosowany jako pierwszy, nie musisz wprowadzać żadnych dodatkowych zmian w migracji przed udostępnieniem jej zespołowi.

Rozwiązywanie konfliktów

Czasami występuje prawdziwy konflikt podczas scalania modelu migawki. Na przykład ty i twój kolega z drużyny mogą zmienić nazwę tej samej właściwości.

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

Jeśli wystąpi ten rodzaj konfliktu, rozwiąż go, ponownie tworząc migrację. Wykonaj następujące kroki:

  1. Przerwanie scalania i wycofywania do katalogu roboczego przed scaleniem
  2. Usuń migrację (ale zachowaj zmiany modelu)
  3. Scal zmiany kolegi z zespołu w katalogu roboczym
  4. Ponowne dodawanie migracji

Po wykonaniu tej czynności dwie migracje można zastosować w odpowiedniej kolejności. Ich migracja jest stosowana najpierw, zmieniając nazwę kolumny na Alias, po tym jak migracja zmieni jej nazwę na Nazwa użytkownika.

Migracja może być bezpiecznie udostępniona pozostałej części zespołu.