无法在 Django 中进行迁移
Unable to makemigrations in Django
问题陈述:
- 我正在尝试在新文件中创建新模型 -
app1/models/model2.py
- 我尝试进行迁移时没有看到任何错误。
- 但是 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。
我删除了所有迁移文件,然后为 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
问题陈述:
- 我正在尝试在新文件中创建新模型 -
app1/models/model2.py
- 我尝试进行迁移时没有看到任何错误。
- 但是 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。
我删除了所有迁移文件,然后为 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