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:
-
Konfiguráció:
Azflyway.conf
fájlban beállíthatók az adatbázis-kapcsolati adatok, például:
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:
Példa egy új táblát létrehozó migrációs fájlra:
3. Migráció futtatása
A migrációs fájlok végrehajtása a következő paranccsal történik:
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:
És ezt a következő paranccsal lehet végrehajtani:
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:
Link:
https://www.red-gate.com/products/flyway/
https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/
https://github.com/flyway/flyway
Megjegyzések
Megjegyzés küldése