Применение миграций
Команда migrate применяет SQL-миграции из сабмодуля auth_perms и из самого сервиса. Это базовая команда, с которой обычно начинается подготовка новой базы.
Команда
uv run manage.py migrate
Используйте команду, когда нужно развернуть схему с нуля или применить новые файлы миграций. Менеджер собирает миграции автоматически и выполняет их в лексикографическом порядке по имени файла.
По умолчанию: Команда применяет все найденные миграции по порядку.
Параметры
| Параметр | Описание |
|---|---|
--name, -n |
Имя миграции без расширения .py. |
Дополнительные примеры запуска
Применить одну конкретную миграцию
uv run manage.py migrate --name 002_mcms_remotes
Полезно, когда нужно точечно проверить новую миграцию сервиса, не трогая остальные файлы.
Как работает
- Создает таблицу
migrations, если истории применений еще нет. - Собирает директории миграций: сначала
submodules/auth_perms/core/migrations, затем проектные каталогиmigrations. - Для каждого файла импортирует модуль и проверяет наличие класса
Migration, наследование отBaseMigrationи атрибутforwards_query. - Передает валидную миграцию в общий механизм
forward_migration(...), который выполняет SQL и пишет запись в таблицу истории.
Что важно учесть
- Если в настройках задан
ORDERED_MIGRATIONS_DIRS, команда использует только этот список директорий и не делает автопоиск. - Ошибки импорта и некорректная структура migration-модуля не валят весь проход целиком: проблемная миграция печатает ошибку и пропускается.
- Порядок применения зависит от имени файла, поэтому префиксы вида
001_,002_должны оставаться строгими. - Команду лучше запускать из корня репозитория: относительные пути и автопоиск рассчитываются именно оттуда.