Middle
Milyen tapasztalata van a Liquibase-szal?
sobes.tech MI
Válasz az MI-től
A Liquibase-szal kapcsolatos tapasztalatok a következők:
- Adatbázis séma verziókezelése:
changelogfájlok (XML, YAML, JSON) használata DDL és DML szkriptekhez. - Migrációk automatizálása: Liquibase integrálása CI/CD pipeline-okba a séma változtatások automatikus alkalmazásához kiadások során.
- Különböző adatbázisok kezelése: Tapasztalat Liquibase használatában PostgreSQL, MySQL és Oracle adatbázisokkal.
- Rollback-ek: rollback szkriptek létrehozása és tesztelése (
rollbackvagytag). - Parancssori használat: migrációk végrehajtása,
changelogfájlok generálása és státusz ellenőrzése.
Példa egy changelog fájl szerkezetére:
<!-- /changelog.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.0.xsd">
<include file="changeset/create_users_table.xml" relativeToChangelogFile="true"/>
<include file="changeset/add_index_to_users_table.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>
Példa egy changeset-re:
<!-- /changeset/create_users_table.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.0.xsd">
<changeSet id="create-users-table" author="devops-engineer">
<createTable tableName="users">
<column name="id" type="INT">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="username" type="VARCHAR(50)">
<constraints nullable="false" unique="true"/>
</column>
<column name="created_at" type="TIMESTAMP WITHOUT TIME ZONE" defaultValueComputed="CURRENT_TIMESTAMP"/>
</createTable>
<rollback>
<dropTable tableName="users"/>
</rollback>
</changeSet>
</databaseChangeLog>
Parancssori használat:
# Minden elérhető változtatás alkalmazása
liquibase update
# Szkript generálása kézi alkalmazáshoz
liquibase updateSQL > update.sql
# Visszaállítás egy adott tag-ig
liquibase rollback <tag_name>
# Változások státuszának megjelenítése
liquibase status
Adattáblák és tesztadatok kezelése loadData-val.
A Liquibase tipikus alkalmazási forgatókönyvei:
- Új verziók telepítése alkalmazásokhoz.
- Hibák javítása az adatbázisban.
- Tesztkörnyezetek létrehozása.
A Liquibase fő előnyei:
- Az adatbázis séma verziókezelése.
- Függetlenség a konkrét DBMS-től.
- Változtatások visszavonásának lehetősége.
- Könnyű integráció CI/CD folyamatokba.