Middle
Liquibase ilə işləmə təcrübəniz nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Liquibase ilə işləmə təcrübəsi aşağıdakıları əhatə edir:
- Verilənlər bazası sxemlərinin versiya idarəetməsi: DDL və DML skriptləri üçün
changelogfayllarının (XML, YAML, JSON) istifadəsi. - Miqrasiya proseslərinin avtomatlaşdırılması: Liquibase-in CI/CD pipeline-larına inteqrasiyası, buraxılışlar zamanı sxem dəyişikliklərinin avtomatik tətbiqi.
- Fərqli verilənlər bazaları ilə işləmək: Liquibase ilə PostgreSQL, MySQL və Oracle-də təcrübə.
- Rollback: Geri dönüş skriptlərinin yaradılması və sınaqdan keçirilməsi (
rollbackvə yatag). - Əmrlər satırı ilə işləmə: Miqrasiya əmrlərinin icrası,
changelogfayllarının yaradılması və vəziyyətin yoxlanması.
changelog faylının quruluşuna nümunə:
<!-- /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>
changeset nümunəsi:
<!-- /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"/>
</column>
<column name="created_at" type="TIMESTAMP WITHOUT TIME ZONE" defaultValueComputed="CURRENT_TIMESTAMP"/>
</createTable>
<rollback>
<dropTable tableName="users"/>
</rollback>
</changeSet>
</databaseChangeLog>
Əmrlər satırı ilə işləmə:
# Bütün dəyişiklikləri tətbiq et
liquibase update
# Əl ilə tətbiq üçün skript yarat
liquibase updateSQL > update.sql
# Müəyyən bir etikete geri dön
liquibase rollback <tag_name>
# Dəyişikliklərin vəziyyətini göstər
liquibase status
Referensiya cədvəlləri və test məlumatları ilə loadData istifadə olunur.
Liquibase-in tipik istifadə ssenariləri:
- Yeni tətbiq versiyalarının yerləşdirilməsi.
- Verilənlər bazasında səhvlərin düzəldilməsi.
- Test mühitlərinin yaradılması.
Əsas üstünlükləri:
- Verilənlər bazası sxemlərinin versiya nəzarəti.
- Xüsusi SGBD-dən asılılığın olmaması.
- Dəyişikliklərin geri alınması imkanı.
- CI/CD pipeline-larına asan inteqrasiya.