Миграции #
1. Liquibase. Что это и для чего? #
Liquibase — это инструмент для управления миграциями базы данных, который помогает разработчикам и администраторам баз данных поддерживать синхронизацию структуры базы данных с кодом приложения. Liquibase позволяет версионировать изменения в базе данных, отслеживать их и автоматически применять при обновлениях.
2. Какие записи создаёт liquibase во время миграции? #
Liquibase автоматически создаёт и использует несколько служебных таблиц для отслеживания состояния миграций в базе данных.
Основные таблицы:
DATABASECHANGELOG
- Хранит информацию о выполненных миграциях (changelog-файлах).
- Структура таблицы:
Поле | Описание |
---|---|
ID | Уникальный идентификатор изменения. |
AUTHOR | Автор миграции. |
FILENAME | Путь к файлу миграции (например, changelog.xml ). |
DATEEXECUTED | Дата выполнения изменения. |
ORDEREXECUTED | Порядок выполнения изменений. |
MD5SUM | Хэш содержимого изменения для проверки. |
DATABASECHANGELOGLOCK
- Предотвращает одновременное выполнение миграций разными процессами.
- Структура таблицы:
Поле | Описание |
---|---|
ID | Идентификатор блокировки (обычно 1 ). |
LOCKED | Флаг (TRUE или FALSE ), показывающий, занята ли блокировка. |
LOCKGRANTED | Время предоставления блокировки. |
LOCKEDBY | Информация о процессе, который удерживает блокировку. |
3. Зачем нужны инструменты миграции? #
Инструменты миграции (например, Liquibase, Flyway) используются для управления изменениями в структуре базы данных в различных средах разработки.
Основные цели:
- Автоматизация обновлений: Автоматическое применение изменений базы данных (создание таблиц, добавление столбцов, индексов и т.д.).
- Отслеживание изменений: Позволяет вести историю всех изменений базы (версионирование).
- Упрощение совместной работы: Разработчики могут синхронизировать свои изменения через централизованные файлы миграции.
- Согласованность: Изменения гарантированно применяются одинаково на всех окружениях (локально, тестовые, продакшн).
- Откат изменений: Возможность отменить применённые миграции в случае ошибок.
- Безопасность: Инструменты предотвращают выполнение миграций двумя процессами одновременно (через блокировки).