Django "У вас есть непримененные миграции". Какие?
Django runserver
жалуется:
You have unapplied migrations;
your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
Как узнать, какие миграции не используются без выполнения миграции?
Ответы
Ответ 1
Если вы используете 1.7, используйте python manage.py migrate --list
. (docs)
Если вы используете 1.8 или выше, используйте python manage.py showmigrations --list
. (docs)
В любом случае будет существовать [X], чтобы показать, какие миграции были применены.
Ответ 2
Небольшая модификация ответа Кевина с использованием grep, чтобы показать только непримененные миграции:
Джанго 1.7:
python manage.py migrate --list | grep -v '\[X\]'
Джанго 1.8 и выше:
python manage.py showmigrations --list | grep -v '\[X\]'
Отредактировано после комментария ngoue. Хорошо поймал. Спасибо за указание на это.
Ответ 3
после использования этой команды:
python manage.py migrate
вы получаете ту же ошибку: У вас есть непримененные миграции;
простой способ решить эту ошибку:
перейдите в каталог вашего проекта, найдите каталог своей базы данных, созданный после команды
python manage.py migrate
в моем случае созданный db был db.sqlite3
просто удалите этот файл и перейдите на свой терминал
и используйте manage.py makemigrations
, а затем manage.py migrate
.
это сработало для меня. Все лучшее
Ответ 4
После запуска команды миграции (python manage.py migrate
) она всегда генерирует файл auto_migration.py
в этом конкретном приложении.
Также этот же файл вы сможете увидеть в своей базе данных. Если этот файл отсутствует в вашей БД, тогда ваш проект будет жаловаться на "непримененные миграции".
Так что просто зайдите в свою базу данных и вручную создайте запись для auto_migration.py
.