Ответ
Alembic — это инструмент для управления миграциями схемы базы данных, разработанный для использования с SQLAlchemy. Он позволяет отслеживать изменения в моделях данных и применять их к базе данных в виде версионируемых скриптов.
Ключевая задача — автоматизация и контроль эволюции схемы БД в процессе разработки, особенно в команде.
Основные возможности:
- Автогенерация миграций: Alembic может сравнивать текущее состояние моделей SQLAlchemy со схемой в базе данных и автоматически создавать скрипт миграции.
- Версионирование: Каждая миграция получает уникальный идентификатор, что позволяет перемещаться между разными версиями схемы (обновлять и откатывать изменения).
- Поддержка ветвления: Позволяет работать с несколькими ветками миграций, которые позже можно объединить.
Пример рабочего процесса:
-
Инициализация (один раз на проект):
alembic init alembic -
Создание новой миграции после изменения моделей:
# Alembic автоматически обнаружит изменения (например, новое поле в таблице) alembic revision --autogenerate -m "Add last_name column to User model" -
Применение миграции к БД:
# Применить последнюю версию alembic upgrade head -
Откат миграции:
# Откатиться на одну версию назад alembic downgrade -1
Alembic является стандартом де-факто для управления миграциями в проектах на FastAPI, Flask и других фреймворках, использующих SQLAlchemy.