2012-09-24 11 views
5

Mamy bazę danych w produkcji, która ma już dużą liczbę wierszy w tabeli "użytkownika". Rozważmy następującą informację ze strony internetowej Flyway:Integracja z Flyway w produkcyjnej bazie danych

Jeśli masz istniejącą bazę danych, która nie została wypełniona przez Flyway to jest do zrobienia:

  • Załóż początkowy scenariusz migracji, która będzie odtworzyć swój obecny stan i nadaj mu niski numer wersji.
  • Użyj polecenia flyway: init, aby utworzyć tabelę metadanych i ustawić ten skrypt jako bieżącą wersję.

Chciałbym wykorzystać drogę przelotu zarządzać mój schemat i różne stałe w bazie danych, ale nie chcę V1__Base_version.sql zawierać informacje dotyczące kont dla naszych obecnych użytkowników produkcyjnych, zwłaszcza biorąc pod uwagę, że jest przechowywany w SCM. Jeśli jednak rozumiem te instrukcje poprawnie, potrzebowałbym możliwości "odtworzenia [mojego] obecnego stanu" za pomocą V1__Base_version.sql.

Tak więc tworzenie migracji początkowej z tylko schematu i stałe działają dobrze? A może bazy danych na naszych stacjach roboczych muszą odpowiadać bazom produkcyjnym w 100%?

+0

Ja odpowiem sobie w ciągu 24 godzin, jeśli mam rację, ale myślę, że tak długo, jak robię inicjację w locie w bazie danych produkcyjnych (zakładając, że schemat i stałe są poprawne) powinienem być jasny. – Joe

Odpowiedz

7

Masz rację. Polecenie init służy do oznaczania produkcyjnej bazy danych wersją.

Początkowa migracja (ze strukturą PROD db) dotyczy innych środowisk. To nigdy nie będzie działać na PROD, ponieważ jego wersja będzie poniżej wersji init. Będzie jednak wyrównywać wszystkie środowiska, aby późniejsze migracje mogły być równomiernie stosowane na wszystkich.

+0

Doskonały. Dziękuję Ci! – Joe

+0

w nowszej wersji flywaya to podstawowe polecenie https://flywaydb.org/documentation/command/baseline it correct? –

Powiązane problemy