Управление миграциями баз данных (chutils db)
Группа команд chutils db предоставляет удобную обертку над Alembic для управления миграциями баз данных. Она полностью
избавляет от необходимости вручную настраивать alembic.ini и env.py в корне проекта. Вся конфигурация генерируется
динамически, а миграции автоматически генерируются на основе метаданных ваших моделей SQLAlchemy.
[!NOTE] Инструменты управления миграциями требуют наличия установленной библиотеки
alembic(опциональная зависимость). Для установки используйте:pip install chutils[db].
Конфигурация проекта
Для использования команд миграций, chutils должен знать, где находятся метаданные моделей SQLAlchemy и URL базы данных.
Настройки считываются из общего конфигурационного файла config.yml:
Database:
database_url: "sqlite+aiosqlite:///project.db"
metadata: "app.db:Base.metadata" # Путь импорта метаданных моделей
migrations_path: "migrations" # Директория хранения миграций (по умолчанию migrations/)
Список команд
1. chutils db status
Показывает информацию о текущем состоянии базы данных и примененных миграциях.
chutils db status
2. chutils db make-migration
Создает новый файл миграции на основе сравнения моделей SQLAlchemy с текущим состоянием базы данных. При первом запуске
chutils автоматически инициализирует директорию миграций и создаст асинхронный env.py.
chutils db make-migration "Добавить таблицу пользователей"
Опции:
--metadata <import_path>— Переопределить путь к метаданным, указанный в конфигурации.--migrations-path <path>— Переопределить путь к директории миграций.
3. chutils db upgrade
Применяет миграции до указанной ревизии. По умолчанию обновляет базу данных до самой последней ревизии (head).
chutils db upgrade [revision]
4. chutils db downgrade
Откатывает миграции до указанной ревизии. По умолчанию откатывает на один шаг назад (-1).
chutils db downgrade [revision]
5. chutils db history
Выводит полную историю созданных миграций в проекте.
chutils db history