无法在 Django 中进行迁移

Unable to makemigrations in Django

问题陈述:

我的基本款:

from django.db import models


class Xyz(models.Model):
    name = models.CharField(max_length=100)

我尝试通过 pycharm 和普通终端。我正在使用 UBuntu 20.04LTS。

我删除了所有迁移文件,然后为 app1 重新运行 makemigrations,它只选择了旧的更改。没有选择新的 Xyz 模型。

所以我创建这个新 model2.py 文件的方式可能有问题。但我通常像 model1.py 一样创建它。我什至尝试复制粘贴并重命名同一个文件。 我的所有文件夹中都有 init.py。

尝试将 app1.models.model2.Xyz class 导入 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