Джанго "У вас есть непримененные миграции". Какие?
Джанго runserver
жалуется:
You have unapplied migrations;
your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
Как я могу узнать, какие миграции не применены без выполнения миграции?
3 ответа
Небольшая модификация ответа Кевина с использованием 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
,