Flyway
Flyway to narzędzie, która umożliwia wersjonowanie bazy danych. Dzięki niemu możliwe jest
Migrowanie, walidowanie, czyszczenie, naprawianie danych oraz wiele innych operacji na danych.
Jest bardzo proste w użytkowaniu poprzez wykorzystane przez twórców podejścia convention over configuration.
Ogromnym plusem jest to, że Flywaydb wspiera wszystkie największe relacyjne bazy danych.
Przykład
Często jest tak, że chcemy uruchomić aplikacje wraz z przykładowym zestawem danych w bazie na starcie. Z wykorzystaniem Flyway jest to bardzo proste i sprawne. Oczywiście możliwości wykorzystania jest znacznie więcej, ale możliwość ta świetnie odzwierciedli przykładową funkcjonalność narzędzia.
Flywaydb i Spring
Przykład zostanie zaprezentowany w ramach aplikacji opartej na Spring Boot.
Skorzystanie z biblioteki sprowadza się do dodania zależności:
<dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> </dependency>
Import danych
Następnie przygotowujemy pliki .sql, które chcemy wczytać na starcie. Wszystkie musimy umieścić w katalogu resources -> db.migration.
Pliki muszą zaczynać się z przedrostkiem VX__, gdzie X to liczba porządkowa według, której ma dokonać się wczytanie.
Same nazwy plków są informacją jedynie dla developera.
Baza danych po imporcie
Zawsze przy starcie aplikacji Flyway zaczytuje skrypty SQL z katalogu resource. Nigdy nie puści dwa raz tego samego skryptu. Tworzy on tabelę w bazie – flyway_schema_history, w której przechowuje informacje o skryptach, które uruchomił, ich status, użytkownika i pozostałe informacje.
Zobacz sam jak działa Flyway
Jeśli chcesz zobaczyć, jak biblioteka działa w praktyce, to dziele się z Tobą swoim projektem, który prezentuje przykładowe wykorzystanie Flywaydb:
https://github.com/bykowski/springboot-flywaydb-sample