Ответ
Для управления версиями схемы базы данных в проектах на SQLAlchemy используется библиотека Alembic. Это стандартный инструмент для миграций, созданный авторами SQLAlchemy.
Alembic позволяет отслеживать изменения в моделях и генерировать скрипты для последовательного обновления структуры БД, что критически важно для командной разработки и развертывания приложений.
Основной процесс работы
-
Установка:
pip install alembic -
Инициализация репозитория миграций (выполняется в корне проекта):
alembic init alembicЭта команда создаст директорию
alembicс конфигурационными файлами. -
Настройка подключения к БД. В файле
alembic.iniнужно указать URL для подключения к базе данных:sqlalchemy.url = postgresql://user:password@localhost/dbnameВ файле
alembic/env.pyнеобходимо указать Alembic, где искать метаданные ваших моделей, чтобы он мог автоматически определять изменения:# alembic/env.py from myapp.models import Base # Импортируем базовый класс моделей target_metadata = Base.metadata -
Создание новой миграции. Alembic сравнивает текущее состояние моделей с состоянием в БД и генерирует скрипт миграции:
alembic revision --autogenerate -m "Add user table" -
Применение миграции к БД:
alembic upgrade headКоманда
headозначает применение всех миграций до последней версии.
Ключевые команды
alembic current: Показать текущую версию миграции в БД.alembic history: Показать историю всех миграций.alembic downgrade -1: Откатить последнюю примененную миграцию.
Примечание: Для фреймворка Flask существует удобная обертка
Flask-Migrate, которая интегрирует Alembic в жизненный цикл Flask-приложения.