【问题标题】:Error in Django migrations, no changes detectedDjango 迁移出错,未检测到更改
【发布时间】:2021-09-19 00:05:17
【问题描述】:

我已经用 python manage.py migrate 命令正确地完成了“初始设置”,现在在我的 mongodb 数据库中,我看到了这些集合:

__schema__
auth_group
auth_group_permissions
auth_permission
auth_user
auth_user_groups
auth_user_user_permissions
django_admin_log
django_content_type
django_migrations
django_session 

里面有对象,所以我很确定我做得对,如果我现在这样做,它会说:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  No migrations to apply.

我认为这一切正常,然后我创建了这个models.py文件

models.py

from django.db import models

# Create your models here.

class Customer(models.Model):
    name = models.CharField(max_length=200, null=True)
    surname = models.CharField(max_length=200, null=True)
    phone = models.CharField(max_length=200, null=True)
    email = models.CharField(max_length=200, null=True)
    date_created = models.DateTimeField(auto_now_add=True, null=True)

这是我的 settings.py 文件的一部分:

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

文件夹结构:

mysite
  mysite
    __init__.py
    settings.py
    other files
  polls
    migrations
    other files
      __init__.py 

当我尝试执行 python manage.py makemigrations 时,我得到“未检测到更改”。添加我的应用名称并不能解决问题。我有一个带有 init.py(带有 __)的迁移文件夹。我不明白为什么它适用于初始设置,而现在却不行。如果我在 models.py 文件中添加了一些语法错误,那么运行命令后我得到的消息是相同的,那么可能是在另一个文件夹中搜索 models.py 吗?真的不知道,无论如何希望我写了所有必要的东西,如果您需要更多信息,我会尽快回复!

【问题讨论】:

  • 您似乎没有将应用添加到INSTALLED_APPS。 Django这里只检查adminauthcontenttypessessions,这些是Django自己实现的一些应用程序。
  • 忘了说我也做过这个!这是代码的那一部分: INSTALLED_APPS = [ 'mysite', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib .messages', 'django.contrib.staticfiles', ] 不好意思,不知道怎么写更好
  • 您可以在帖子中加入关于INSTALLED_APPS 的部分。
  • 'mysite' 是应用的名称吗?
  • 如果您不确定应用名称,请显示您的文件夹结构或此models.py所在的文件夹是您的应用名称。

标签: python django mongodb migration djongo


【解决方案1】:

这里有几件事要检查以确保您的迁移能够顺利进行。

  1. 确保您使用 django-admin startapp mysite 创建了应用。
  2. 确保在将模型添加到 mysite/models.py 后保存了模型文件。
  3. 在 settings.py 中将应用名称添加到已安装的应用中,但请确保将其添加到所有应用之后。

在您的情况下,我看到您在安装的应用程序中添加了mysite,而实际上您应该添加应用程序名称而不是项目名称,在您的情况下是polls 应用程序。

【讨论】:

  • 非常感谢,问题是应用名称不正确,这解决了问题,你知道为什么我必须将应用名称放在所有其他名称之后而不是之前吗?
猜你喜欢
  • 2017-08-22
  • 2019-05-30
  • 2020-07-02
  • 2020-01-13
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
  • 2015-09-13
  • 2016-07-09
相关资源
最近更新 更多