makemigrations - 未检测到任何更改 - 仅限 Django 4.2

问题描述 投票:0回答:1

嗯,我正在关注 Django Girls 教程,但使用的是 django 版本 4.2 一切都很好,直到我创建模型时需要 makemigrations。

我将新应用程序“博客”放在settings.py中的INSTALLED_APPS上:

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
    ]

另外,我认为没有必要,但在 admin.py 上添加了寄存器:

    from django.contrib import admin
    
    from .models import Post
    
    admin.site.register(Post)

添加所有这些内容并安装后,我需要执行 makemigrations 以在 ./blog/migrations 目录中生成 0001_initial.py 文件迁移,但它显示以下消息:

No changes detected

在 makemigrations 命令后包含我的应用程序的名称,但仍然未检测到更改

我在互联网上搜索了这个错误并尝试了不同的迁移变体,但唯一对我有用的是下一个>

./manage.py migrate --run-syncdb

然后它起作用了,我使用默认的 django SGDB sqlite3,数据库表是在此命令之后创建的,运行服务器后我可以正常使用模型。

这样做的问题是当我想编辑模型时,我执行 makemigrations 但它仍然没有检测到更改。前面的命令 --run-syncdb 仅适用于创建数据库,但无法使用新模型字段进行更新。

我可以看出问题出在 Django 4.2 上,因为我在三台不同的计算机上执行了完全相同的步骤,每台计算机都安装了 Ubuntu、Termux 和 Windows。

我还尝试使用 Django 3.2 进行相同的教程,并且在迁移或数据库创建方面没有任何问题。

django django-models migrate makemigrations
1个回答
0
投票

试试这个

python manage.py makemigrations APPNAME

像这样:

python manage.py makemigrations blog
© www.soinside.com 2019 - 2024. All rights reserved.