我试图使用makemigrations命令在现有的应用程序中创建迁移,但它输出“未检测到更改”。

通常我使用startapp命令创建新的应用程序,但在创建这个应用程序时没有使用它。

调试后,我发现它没有创建迁移,因为迁移包/文件夹从应用程序中丢失。

如果文件夹不存在或者我遗漏了什么,如果它创建文件夹会更好吗?


当前回答

我在django 3.0中遇到了类似的问题,根据官方文档中的迁移部分,运行这个足够更新我的表结构:

python manage.py makemigrations
python manage.py migrate

但是输出总是一样的:在我执行'makemigrations'脚本后,我的模型'未检测到变化'。 我在models.py的模型上有一个语法错误,我想在db上更新:

field_model : models.CharField(max_length=255, ...)

而不是:

field_model = models.CharField(max_length=255, ...)

解决了这个愚蠢的错误,有了这些命令,迁移就没有问题了。也许这能帮到别人。

其他回答

我忘记写正确的论点了

class LineInOffice(models.Model):   # here
    addressOfOffice = models.CharField("Корхоная жош",max_length= 200)   #and here
    ...

在models.py 然后就不那么烦人了

在应用程序“myApp”中未检测到任何变化

我从django外部复制了一个表,Meta类默认为“managed = false”。例如:

class Rssemailsubscription(models.Model):
    id = models.CharField(primary_key=True, max_length=36)
    ...
    area = models.FloatField('Area (Sq. KM)', null=True)

    class Meta:
        managed = False
        db_table = 'RSSEmailSubscription'

通过将managed改为True, makemig开始发生变化。

好吧,我相信你还没有设置模型,那么它现在迁移了什么?

所以解决方案是设置所有变量和设置Charfield, Textfield.......然后迁移它们,就会成功。

确保你的应用在settings.py中的installed_apps中被提及 确保建模类扩展了模型。模型

我的问题(以及解决方案)与上面描述的不同。

我没有使用models.py文件,而是创建了一个models目录,并在那里创建了my_model.py文件,我把我的模型放在那里。Django找不到我的模型,所以它写道没有迁移可以应用。

我的解决方案是:在my_app/models/__init__.py文件中,我添加了这一行: 导入MyModel