Джанго "У вас есть непримененные миграции". Какие?

Джанго runserver жалуется:

You have unapplied migrations; 
your app may not work properly until they are applied. 
Run 'python manage.py migrate' to apply them.

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

3 ответа

Решение

Если вы на 1.7, используйте python manage.py migrate --list, ( документы)

Если вы используете 1.8 или выше, используйте python manage.py showmigrations --list, ( документы)

В любом случае будет [X], чтобы показать, какие миграции были применены.

Небольшая модификация ответа Кевина с использованием grep, чтобы показать только непримененные миграции:

Джанго 1.7:

python manage.py migrate --list | grep -v '\[X\]'

Джанго 1.8 и выше:

python manage.py showmigrations --list | grep -v '\[X\]'

Отредактировано после комментария ngoue. Хорошо поймал. Спасибо за указание на это.

Вы можете увидеть список только непримененных миграций с --plan вариант migrate команда:

python manage.py migrate --plan

Он был представлен в Django 2.2 и задокументирован здесь.

После использования этой команды:

python manage.py migrate

вы получаете ту же ошибку: у вас есть непримененные миграции;

Простой способ решить эту ошибку - перейти в каталог вашего проекта, чтобы найти каталог базы данных, созданный после команды

python manage.py migrate

в моем случае db.sqlite3 создал db.sqlite3, просто удалите этот файл и перейдите на свой терминал и используйте manage.py makemigrations с последующим manage.py migrate,

это сработало для меня. Всего наилучшего

После запуска команды миграции (python manage.py migrate) его всегда генерирует auto_migration.py файл в этом конкретном приложении.

Также этот же файл вы сможете увидеть в своей базе данных. Если этот файл отсутствует в вашей БД, тогда ваш проект будет жаловаться на "непримененные миграции".

Так что просто зайдите в свою базу данных и вручную создайте запись для auto_migration.py,

Другие вопросы по тегам