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:
- Przerwanie scalania i wycofywania do katalogu roboczego przed scaleniem
- Usuń migrację (ale zachowaj zmiany modelu)
- Scal zmiany kolegi z zespołu w katalogu roboczym
- 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.