Middle
Aké máte skúsenosti s Liquibase?
sobes.tech AI
Odpoveď od AI
Skúsenosti s Liquibase zahŕňajú:
- Správa verzií schém databáz: Použitie súborov
changelog(XML, YAML, JSON) pre skripty DDL a DML. - Automatizácia migrácií: Integrácia Liquibase do CI/CD pipeline-ov na automatické použitie zmien schémy pri vydaniach.
- Práca s rôznymi databázami: Skúsenosti s Liquibase s PostgreSQL, MySQL a Oracle.
- Rollbacky: Vytváranie a testovanie rollback skriptov (
rollbackalebotag). - Použitie príkazového riadku: Vykonávanie migrácií, generovanie
changelogsúborov a kontrola stavu.
Príklad štruktúry changelog súboru:
<!-- /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>
Príklad changeset:
<!-- /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>
Použitie príkazového riadku:
# Aplikovať všetky dostupné zmeny
liquibase update
# Generovať skript pre manuálne použitie
liquibase updateSQL > update.sql
# Vrátiť do určitého tagu
liquibase rollback <tag_name>
# Zobraziť stav zmien
liquibase status
Práca s tabuľkami a testovacími dátami cez loadData.
Typické scenáre použitia Liquibase:
- Nasadenie nových verzií aplikácií.
- Oprava chýb v databáze.
- Vytváranie testovacích prostredí.
Hlavné výhody Liquibase:
- Kontrola verzií schémy databázy.
- Nezávislosť od konkrétneho SGBD.
- Možnosť vrátenia zmien.
- Jednoduchá integrácia do CI/CD.