2012-04-24 5 views
13

Zawsze uważałem kontrolę wersji za problem, jeśli chodzi o schematy bazy danych.Używanie kodu Entity Framework Pierwsze migracje w projekcie DVCS

A więc - obecnie analizuję kod Entity Framework First Migrations i do tej pory jestem pod wrażeniem.

Moje pytanie brzmi, czy ktoś ma jakiekolwiek doświadczenie w używaniu migracji w zespole za pomocą DVCS?

Jeśli programiści pracujący w różnych branżach tworzą swoje własne migracje, czy narzędzie "Aktualizacja bazy danych" radzi sobie dobrze z tym, gdy filie są scalane?

Domyślam się, że może się zdarzyć, że nowa migracja pojawi się na środku listy. Czy zostanie to następnie odebrane, czy po prostu szuka "nowszych" migracji niż ostatnio wdrożone?

Doceniam to, że zespół będzie musiał uważać, aby nie tworzyć sprzecznych zmian schematów - to jest coś, co możemy poradzić sobie - ale warto by było wiedzieć, czy "Aktualizacja bazy danych" jest wystarczająco inteligentna, aby wykryć brakujące elementy. ' migracja?

Dzięki - Chris

+2

Czy doszedłeś do wniosku z tym? – sirrocco

Odpowiedz

1

Według jednego blog post udało mi się znaleźć na ten temat, wydaje się, że rozwój równolegle, niezależnie od narzędzia VCS, jest problematyczne z obecnym stanem migracji bazy danych w EF. Wydaje się, że nie ma sposobu, aby obsłużyć scenariusz ze względu na sposób śledzenia stanu bazy danych. Paweł zapewnia example project on GitHub, aby wyświetlić problem.

Możesz być znacznie lepiej wykorzystując niezależne narzędzie do obsługi migracji bazy danych. Użyłem Migrator.NET z dużym sukcesem i prawidłowo obsługuje zmiany schematów równoległych programistów. Wykorzystuje również stosunkowo niską technologię śledzenia "wersji" bazy danych, co zadziwiająco działa bardzo dobrze, o ile Ty i Twój zespół zdecydujecie się na dzień, w którym nikt nigdy nie dotknie bazy danych, z wyjątkiem klasy migracji (zadzwoniliśmy tego dnia v1 bazy danych).

+0

Zobacz także [FluentMigrator] (http://nuget.org/packages/FluentMigrator). Wygląda na to, że Migrator.NET przestało działać i ten projekt ma wiele podobieństw. Uruchomiłem go wczoraj wieczorem i ma nawet sposób na wykorzystanie istniejących klas migracji Migrator.NET. – Sumo

0

Nie sądzę, że to działa i nie sądzę, że istnieje sposób obejścia tego.

Aby uzyskać więcej informacji, patrz this blog post.

Moja rekomendacja to wykorzystanie innego narzędzia do zarządzania migracjami.

1

Rozwiązania opisane w tym artykule mogą okazać się przydatne. Robisz dodatkowy krok, tworząc pustą migrację, która ignoruje zmiany od drugiego programisty. To aktualizuje migawkę do zsynchronizowania z bazą danych.

http://msdn.microsoft.com/en-us/data/dn481501.aspx