Ugrás a fő tartalomra

Flyway alapok


Flyway alapok


A Flyway egy nyílt forráskódú adatbázis-migrációs eszköz, amelyet a Redgate fejlesztett. A célja az adatbázis-sémák verziókezelése, lehetővé téve a fejlesztők számára, hogy strukturált és automatizált módon kezeljék az adatbázis-változásokat.



1. Mire Szolgál a Flyway?

A Flyway biztosítja, hogy az adatbázisok konzisztens állapotban maradjanak a fejlesztés, tesztelés és éles környezetekben történő telepítések során. Az eszköz a verziókezelő rendszerekhez hasonlóan működik, és biztosítja az adatbázis-sémák migrációját és visszaállítását.


Fő funkciói:
Adatbázis migráció – SQL-alapú séma- és adatváltoztatások verziókezelése.
Automatizált végrehajtás – Az adatbázis-módosítások automatikus végrehajtása különböző környezetekben.
Visszagörgetés és ismételhetőség – Az adatbázis-módosítások visszavonhatók és újraalkalmazhatók.
Integráció DevOps-folyamatokba – CI/CD eszközökkel (pl. Jenkins, GitHub Actions, Azure DevOps) való integráció.
Több adatbázis támogatása – Széles körben támogatott adatbázismotorok, mint például PostgreSQL, MySQL, SQL Server, Oracle, és mások.



2. Hogyan Kell Használni a Flyway-t?

A Flyway működése SQL-alapú migrációs fájlokra épül, amelyeket meghatározott névkonvenciók szerint kell elhelyezni és végrehajtani.

Alapvető lépések a Flyway használatához

1. Telepítés és konfiguráció

A Flyway letölthető és futtatható parancssori eszközként, Java könyvtárként, Docker konténerként, illetve Maven, Gradle, vagy más build eszközön keresztül.

  • Parancssorban történő telepítés:

    --sh

    curl -L https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/9.22.1/flyway-commandline-9.22.1-linux-x64.tar.gz | tar xvz export PATH=$PATH:$(pwd)/flyway-9.22.1
  • Konfiguráció:
    Az flyway.conf fájlban beállíthatók az adatbázis-kapcsolati adatok, például:

    --ini

    flyway.url=jdbc:mysql://localhost:3306/mydb flyway.user=root flyway.password=password

2. Migrációs fájlok létrehozása

A Flyway verziózott SQL fájlokkal dolgozik, amelyeket a flyway migrate parancs futtat.
A migrációs fájlok elnevezési szabálya:

php-template

V<verzió>__<név>.sql

Példa egy új táblát létrehozó migrációs fájlra:

--pgsql

V1__Create_users_table.sql
--sql

CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL );


3. Migráció futtatása

A migrációs fájlok végrehajtása a következő paranccsal történik:

--sh

flyway migrate

A Flyway az adatbázisban egy belső flyway_schema_history táblát hoz létre, amelyben nyomon követi a végrehajtott migrációkat.


4. Rollback (visszagörgetés)

Alapértelmezés szerint a Flyway nem támogatja az automatikus rollback-et, de ezt manuálisan vissza lehet vonni egy új "undo" migrációs fájl létrehozásával:

---pgsql

U1__Drop_users_table.sql

---sql

DROP TABLE users;

És ezt a következő paranccsal lehet végrehajtani:

---sh

flyway undo


5. Verziózás és szinkronizáció

A flyway info parancs megmutatja az aktuális adatbázis állapotát, és hogy milyen migrációk futottak le:

---sh

flyway info


3. A Flyway Komponensei

A Flyway több összetevőből áll, amelyeket a verziókezeléshez és a migrációs folyamatokhoz használ.

1. Core (Alap) Flyway Parancsok

ParancsLeírás
flyway migrateAz összes új migráció végrehajtása
flyway cleanAz adatbázis összes objektumának törlése
flyway infoAz adatbázis állapotának ellenőrzése
flyway validateEllenőrzi, hogy az adatbázis migrációi érvényesek-e
flyway repairAz adatbázis migrációs állapotának javítása
flyway undoEgy migráció visszagörgetése

2. Flyway Editions (Verziók)

A Flyway többféle verzióban érhető el:

Community Edition – Nyílt forráskódú verzió alapvető migrációs funkciókkal.
Teams Edition – Haladó funkciók, például több csapat támogatása, scripting.
Enterprise Edition – Nagyvállalati verzió biztonsági és CI/CD integrációs funkciókkal.


3. Flyway Integrációk

A Flyway több programozási nyelvvel és CI/CD eszközzel is integrálható:

  • Java, Python, Node.js
  • Jenkins, GitHub Actions, Azure DevOps, GitLab CI/CD
  • Docker
  • Spring Boot támogatás (automatikus migráció futtatás spring.flyway konfigurációval)

4. Összegzés

A Flyway egy robusztus, SQL-alapú adatbázis-migrációs eszköz, amely segíti az adatbázis-verziókezelést és DevOps-folyamatokhoz való integrációt.

Fő előnyei:

  • Egyszerű, SQL-alapú migrációs fájlok
  • Több adatbázis támogatása (SQL Server, PostgreSQL, MySQL stb.)
  • CI/CD eszközökkel integrálható
  • Automatizált végrehajtás és visszagörgetés

📌 Kinek ajánlott?

  • Fejlesztőknek, akik folyamatos adatbázis-verziókezelést igényelnek
  • DevOps mérnököknek, akik adatbázisokat telepítenek automatizált pipeline-okkal
  • Nagyvállalatoknak, ahol több csapat dolgozik ugyanazon az adatbázison

Ha strukturált és automatizált adatbázis-migrációt keresel, a Flyway az egyik legjobb választás! 🚀





 




Link:

https://www.red-gate.com/products/flyway/

https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/

https://github.com/flyway/flyway


Megjegyzések