10

Korzystamy z pierwszych migracji kodu, aby zsynchronizować naszą bazę danych i model. W tej chwili mamy numer wersji jako nazwę migracji, która oczywiście nie działa. Problem polega na tym, że wiele migracji o tej samej nazwie jest tworzonych przez różnych programistów niezależnie od siebie w lokalnej bazie danych. Doprowadziło to do pewnego dziwnego zachowania, ponieważ IMigrationMetadata.Id było inne z powodu znacznika czasu, ale klasy są częściowe o tej samej nazwie.Konwencje nazewnictwa dla pierwszych migracji kodu

Jaki jest sposób na wywoływanie tych migracji? Przykłady są zawsze absurdalnie uproszczone: np. dodanie właściwości Readers powoduje migrację AddReaders.

A może migracje należy podzielić na te drobne zmiany? Zamiast gromadzić wszystkie zmiany w jednej dużej migracji. Co jeśli istnieją zależności?

Odpowiedz

0

Zmagałem się z tym samym problemem i próbowałem różnych rozwiązań. Do tej pory doszliśmy do wniosku, że wszyscy programiści wykluczyli migracje z procesu sprawdzania, a następnie wyznaczyli jednego wyznaczonego programistę do "migracji wersji", która obejmuje zmiany wszystkich pozostałych pracujących nad projektem.

1

Tak, myślę, że najlepszym sposobem jest rozbicie zmian na małe jednostki, z opisowymi nazwami. Tak jak w przypadku git, gdzie powinieneś często się angażować, z migracjami powinieneś często migrować. Niekoniecznie właściwość według właściwości, ale zawierająca logiczną jednostkę pracy.

Jeśli musisz dodać dwie tabele dla niektórych funkcji, dodaj te dwie tabele w jednej migracji. Unikaj dużych migracji, gdy praca przez kilka dni zmienia modele przed utworzeniem migracji. Czas jest niezbędny, aby uniknąć konfliktów.

Jeśli istnieją zależności, jedna migracja powinna zawierać powiązane zmiany, więc jeśli inny programista zastosuje migrację, aplikacja będzie nadal działać.

Gdy programista dokonuje migracji, powinien zostać natychmiast zatwierdzony i zsynchronizowany (udostępniony innym programistom, na wypadek, gdyby nie korzystałeś z git).

Podczas pracy z małymi jednostkami zmiany scalanie i rozwiązywanie konfliktów staje się znacznie łatwiejsze.