Sobes.tech
Middle

Ի՞նչ փորձ ունեք Liquibase-ով աշխատելու մասին։

sobes.tech AI

Պատասխան AI-ից

Liquibase-ով աշխատանքային փորձը ներառում է.

  • Տվյալների բազայի սիմայի տարբերակների կառավարում: changelog ֆայլերի (XML, YAML, JSON) օգտագործում DDL և DML սցենարների համար:
  • Միգրացիաների ավտոմատացում: Liquibase- ի ինտեգրացիա CI/CD պայլիներում՝ սիմայի փոփոխությունները ավտոմատ կիրառելու համար թողարկումների ժամանակ:
  • Տարբեր տվյալների բազաների հետ աշխատում: Liquibase- ի փորձ PostgreSQL, MySQL և Oracle- ի հետ:
  • Rollback-ներ: Վերադարձի սցենարների ստեղծում և փորձարկում (rollback կամ tag):
  • Համակարգչային հրամանների տողից օգտվել: Միգրացիաների իրականցում, changelog ֆայլերի սերունդ և վիճակի ստուգում:

Նմուշային changelog ֆայլի կառուցվածքը:

<!-- /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:

<!-- /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>

Համակարգչային հրամանների տողից օգտվել:

# Բոլոր փոփոխությունները կիրառել
liquibase update

# Ռամկային սցենտ ստեղծել ձեռնարկատիրական կիրառման համար
liquibase updateSQL > update.sql

# Վերադառնալ նշված տեգին
liquibase rollback <tag_name>

# Փոփոխությունների վիճակի ցուցադրում
liquibase status

Տվյալների աղյուսակների և փորձնական տվյալների հետ աշխատում loadData-ով:

Լայնորեն կիրառվող Liquibase սցենարներ:

  • Նոր տարբերակների տեղադրում ծրագրերում
  • Տվյալների բազայում սխալների ուղղում
  • Փորձնական միջավայրերի ստեղծում

Լիարժեք առավելությունները:

  • Տվյալների բազայի սիմայի տարբերակների վերահսկում
  • Անկախություն կոնկրետ SGBD-ից
  • Փոփոխությունների վերականգնում
  • Լավ ինտեգրում CI/CD-ների հետ։