w , , , ,

FajneFajne Dobre!Dobre! ŚwietnieŚwietnie Że co?Że co? WnerwWnerw SmuteczekSmuteczek

Flyway – system kontroli wersji dla baz danych

Flywaydb
Flywaydb

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.

flywaydb insert data

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.

flyway schema history

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

Napisane przez Przemysław Bykowski

Aktywny programista i energiczny trener. Specjalizuje się w Spring Boot i uczę go w ramach AkademiaSpring.pl. Po godzinach udzielam się na YouTubach. Więcej o mnie.

Dodaj komentarz

czy warto uczyć się springa

8 powodów, dla których warto uczyć się Spring Framework!

Warstwy pośrednie w dostępnie do danych – MVC