Проверьте, была ли применена миграция Django к БД

У меня есть проект django, и я хочу обновить базу данных MySQL из предыдущей версии кодовой базы, чтобы она была совместима с текущей версией.

У меня есть все миграции для проекта, но я не знаю, какая из них была последней, примененной к этой альтернативной базе данных.

Я могу попытаться определить это вручную, но мне интересно, есть ли более простой автоматизированный способ определения первого непримененного перехода.

Вы можете работать с командой showmigrations [Django-doc], это создаст список миграций, где будет отмечен флажок, если миграция была применена, так:

python3 manage.py showmigrations

или для конкретного приложения:

python3 manage.py showmigrations app_name

Например, для auth возможным результатом будет:

$ python manage.py showmigrations auth
auth
 [X] 0001_initial
 [X] 0002_alter_permission_name_max_length
 [X] 0003_alter_user_email_max_length
 [X] 0004_alter_user_username_opts
 [X] 0005_alter_user_last_login_null
 [X] 0006_require_contenttypes_0002
 [X] 0007_alter_validators_add_error_messages
 [X] 0008_alter_user_username_max_length
 [X] 0009_alter_user_last_name_max_length
 [X] 0010_alter_group_name_max_length
 [ ] 0011_update_proxy_permissions
 [ ] 0012_alter_user_first_name_max_length

Это означает, что все миграции были применены, кроме двух последних.

Вернуться на верх