Невозможно сделать миграции в Django
Постановка проблемы:
- Я пытаюсь создать новую модель в новом файле -
app1/models/model2.py
.
- Я не вижу никакой ошибки, когда я пытаюсь сделать makemigrations.
- Но Django не обнаруживает никаких изменений.
- Если я помещаю тот же код в мой предыдущий файл
app1/models/model1.py
- makemigrations работает. - Я пробовал -
python manage.py makemigrations app1
&python manage.py makemigrations
Моя базовая модель:
from django.db import models
class Xyz(models.Model):
name = models.CharField(max_length=100)
Я пробовал через pycharm и обычный терминал. Я использую UBuntu 20.04LTS.
Я удалил все файлы миграции, затем повторил makemigrations
для app1
, он выбрал только старые изменения. не выбрал новую Xyz
модель.
Возможно, есть что-то неправильное в том, как я создаю этот новый файл model2.py. Но я создаю его нормально, как model1.py. Я даже пытался скопировать вставить и переименовать тот же файл. Во всех моих папках есть init.py.
Попробуйте импортировать класс app1.models.model2.Xyz
в класс app1/models/__init__.py
, как это было решено на моей стороне.
app/models/model2.py
from django.db import models
class Xyz(models.Model):
name = models.CharField(max_length=100)
Запуск 1: Неудачный
app/models/__init__.py
from models.model1 import *
Сделать миграции
$ python3 app/manage.py makemigrations
(0.000) SELECT @@SQL_AUTO_IS_NULL; args=None
(0.000) SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; args=None
(0.000) SELECT VERSION(); args=None
(0.000) SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; args=None
(0.000) SHOW FULL TABLES; args=None
No changes detected
Запуск 2: Успешный
app/models/__init__.py
from models.model1 import *
from models.model2 import Xyz # Add this line
Сделать миграции
$ python3 app/manage.py makemigrations
(0.000) SELECT @@SQL_AUTO_IS_NULL; args=None
(0.000) SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; args=None
(0.000) SELECT VERSION(); args=None
(0.000) SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; args=None
(0.000) SHOW FULL TABLES; args=None
Migrations for 'app':
app/migrations/0002_xyz.py
- Create model Xyz