Подтвердить что ты не робот

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.

Как узнать, какие миграции не используются без выполнения миграции?

4b9b3361

Ответ 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.