3

我的 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__但它对我不起作用。

我什至尝试删除数据库并创建新数据库,但它也不起作用。

编辑:

因为我删除了数据库并重新创建了数据库,所以数据库是空的,但我仍然收到相同的消息。

4

3 回答 3

2

我刚刚遇到了这样的问题。就我而言,问题是我已经通过 pip 安装了我正在开发的包的稳定版本,而 Django 正在导入稳定版本而不是我的开发版本。要检查您是否属于这种情况,请尝试将语法错误添加到models.py. 如果makemigrations没有触发语法错误,那么您将知道您的版本甚至没有被 python 解释器加载。

于 2018-10-19T12:11:09.000 回答
1

如果您的模型不是从 django 模型继承的,那么您将看到上述错误。确保您的自定义模型继承自 django models.Model,类似这样。

from django.db import models

class Posts(models.Model):
    ...
于 2020-11-11T11:37:42.197 回答
-3

Deleting the DB and creating new one will never work since it refer the previous migration files. Delete all previous migration files and pycache files except init. Then try running these.

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

This worked for me

于 2017-10-17T12:22:41.533 回答