Django makemigrations В приложении не обнаружено изменений

У меня проблемы с моей командой makemigrations.

Примечание. До сих пор я успешно выполнял миграцию, поэтому я пытаюсь выполнить этот проект не впервые.

У меня есть проект в INSTALLED_APPS.

Проблема: по какой-то причине проект перестал обнаруживать какие-либо изменения в моих моделях.

Внутри моего проекта models.py у меня есть:

from myproject.myfolder import myModel1
from myproject.myfolder import myModel2
from myproject.myfolder import myModel3

если добавить новые модели как класс myModel4 и импортировать его в models.py, и я пытаюсь

python mamange.py makemigrations environment=local

я получил No changes detected

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

python manage.py makemigrations myproject environment=local

Я даже пытаюсь удалить все файлы в __pycache__ но это не работает для меня.

Я даже пытаюсь удалить базу данных и создать новую, и она тоже не работает.

РЕДАКТИРОВАТЬ:

Поскольку я удаляю базу данных и снова создаю ее, база данных пуста, но я все равно получаю то же сообщение.

2 ответа

Я просто столкнулся с такой проблемой. В моем случае проблема заключалась в том, что я установил через pip стабильную версию пакета, который разрабатывал, и Django импортировал стабильную версию, а не мою версию для разработки. Чтобы проверить, так ли это с вами, попробуйте добавить синтаксическую ошибку в models.py, Если makemigrations не вызывает синтаксическую ошибку, тогда вы будете знать, что ваша версия даже не загружается интерпретатором Python.

Если ваша модель не наследуется от модели django, вы увидите вышеупомянутую ошибку. Убедитесь, что ваша пользовательская модель наследуется от django models.Model, что-то вроде этого.

from django.db import models

class Posts(models.Model):
    ...

Удаление БД и создание новой никогда не сработает, поскольку она ссылается на предыдущие файлы миграции. Удалите все предыдущие файлы миграции и файлы pycache, кроме init. Тогда попробуйте запустить это.

    python manage.py migrate --fake-initial
    python manage.py makemigrations
    python manage.py migrate

Это сработало для меня

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