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 migratepython 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
不需要initialize
makemigrations
之前的db,如果您使用自定义用户模型,实际上会很麻烦。
你的应用是否在settings.py文件的INSTALLED_APPS中?
@B.Sebastiano 我检查了 settings.py 文件,但没有得到我的应用程序名称
我建议您查看此文档https://docs.djangoproject.com/en/3.1/intro/tutorial01/。尝试检查您的文件夹结构。以上是关于makemigrations 显示未检测到更改的主要内容,如果未能解决你的问题,请参考以下文章
Django makemigrations 未检测到项目/应用程序/myapp
为啥 Django makemigrations 每次运行时都会检测到由于 help_text/verbose_name 属性中的重音而导致的更改?