Sobes.tech
Назад к вопросам
Junior — Middle
55

Как правильно создать и настроить скрипт для управления миграциями базы данных с помощью Liquibase?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Для управления миграциями базы данных с помощью Liquibase нужно создать changelog-файл, описывающий изменения схемы, и настроить скрипт для запуска миграций.

  1. Создайте файл changelog, например db.changelog-master.xml, где опишите изменения в формате XML, YAML или JSON. Пример XML:
<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-3.8.xsd">

    <changeSet id="1" author="user">
        <createTable tableName="person">
            <column name="id" type="int" autoIncrement="true">
                <constraints primaryKey="true" nullable="false"/>
            </column>
            <column name="name" type="varchar(255)"/>
        </createTable>
    </changeSet>

</databaseChangeLog>
  1. Настройте скрипт для запуска миграций. Если используете Maven, добавьте плагин liquibase-maven-plugin и настройте его в pom.xml:
<plugin>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-maven-plugin</artifactId>
    <version>4.15.0</version>
    <configuration>
        <changeLogFile>src/main/resources/db.changelog-master.xml</changeLogFile>
        <url>jdbc:postgresql://localhost:5432/mydb</url>
        <username>user</username>
        <password>password</password>
    </configuration>
</plugin>
  1. Запускайте миграции командой:
mvn liquibase:update

Если используете Gradle или standalone Liquibase, настройка аналогична: указываете changelog, параметры подключения и запускаете команду обновления.

Важно: храните changelog в системе контроля версий, используйте уникальные id для changeSet, и тестируйте миграции на тестовой базе перед продакшеном.