makemigrations 显示未检测到更改

Posted

技术标签:

【中文标题】makemigrations 显示未检测到更改【英文标题】:makemigrations shows No changes detected 【发布时间】:2021-05-09 16:10:35 【问题描述】:

我完全是 django 的初学者。我在 models 文件夹 中创建了一个模型 并运行 python manage.py makemigrations 仍然显示 No changes detected

product.py

从 django.db 导入模型

类产品(models.Model):

name = models.CharField(max_length=50)
price = models.IntegerField(default=0)
description = models.CharField(max_length=200, default='')
image = models.ImageField(upload_to="products/")

init.py(模型/init.py)

从 .product 导入产品

提前致谢

【问题讨论】:

你需要再运行一个命令——python manage.py migrate python manage.py makemigrations <appname> 这行得通吗? 不,它不起作用,它显示没有要应用的迁移。 这能回答你的问题吗? Django - makemigrations - No changes detected @AbdulAzizBarkat 我的应用程序名称是一个商店,但它显示 No installed app with label 'store'。 【参考方案1】:

首先您必须使用python manage.py migrate 创建数据库。 如果您在执行此步骤之前已经创建了模型,则无需执行makemigrations。 您必须仅使用 makemigrations 来收集新更改,然后使用 python manage.py migrate 应用此更改。

    使用python manage.py migrate 创建初始化您的数据库。 如果有更改,请使用python manage.py makemigrations 收集它们。 再次使用python manage.py migrate 将更改应用到数据库。

【讨论】:

我已经初始化了数据库并且管理面板运行良好。但我需要创建另一个模块 product。当我运行python manage.py makemigrations 时,它显示No changes detected 不需要initializemakemigrations之前的db,如果您使用自定义用户模型,实际上会很麻烦。 你的应用是否在settings.py文件的INSTALLED_APPS中? @B.Sebastiano 我检查了 settings.py 文件,但没有得到我的应用程序名称 我建议您查看此文档https://docs.djangoproject.com/en/3.1/intro/tutorial01/。尝试检查您的文件夹结构。

以上是关于makemigrations 显示未检测到更改的主要内容,如果未能解决你的问题,请参考以下文章

未检测到针对 makemigrations 的更改

Django makemigrations 未检测到项目/应用程序/myapp

为啥 Django makemigrations 每次运行时都会检测到由于 help_text/verbose_name 属性中的重音而导致的更改?

python manage.py makemigrations 没有检测到变化?

Django:啥时候运行makemigrations?

SegmentedControl 未检测到更改