【问题标题】:Django error: relation "users_user" does not existDjango 错误:关系“users_user”不存在
【发布时间】:2015-06-22 17:02:57
【问题描述】:

我在迁移过程中遇到以下错误:

django.db.utils.ProgrammingError: 关系“users_user”不存在

  File "/Users/user/Documents/workspace/api/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/Users/user/Documents/workspace/api/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/Users/user/Documents/workspace/api/env/lib/python2.7/site-packages/django/db/utils.py", line 97, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/Users/user/Documents/workspace/api/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute
    return self.cursor.execute(sql)

这是我的模型:

from django.db import models
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin
from ..managers.user import UserManager


class User(AbstractBaseUser, PermissionsMixin):
    # Email identifier, primary key, unique identifier for the user.
    email = models.EmailField(verbose_name='email address', max_length=254, unique=True, db_index=True)
    is_admin = models.BooleanField(default=False)
    is_active = models.BooleanField(default=False)
    objects = UserManager()

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []

    class Meta:
        verbose_name = 'User'
        app_label = "users"

    def __unicode__(self):
        return self.email

    @property
    def get_full_name(self):
        return self.email

    @property
    def get_short_name(self):
        return self.email

    def has_module_perms(self, app_label):
        """
        Does the user have permissions to view the app `app_label`
        """
        # Simplest possible answer: Yes, always
        return True

    @property
    def is_staff(self):
        # Simplest possible answer: All admins are staff
        return self.is_admin

设置:

AUTH_USER_MODEL = 'users.User'

我错过了什么?

【问题讨论】:

  • 你完成了./manage.py makemigrations./manage.py migrate吗?
  • @tgdn 是的,所以我做了makemigrations 没有错误,然后在做migrate 我得到了上述错误。
  • 你想拥有一个CUSTOM_USER_MODEL 吗?
  • 我正在使用AUTH_USER_MODEL
  • @tgdn 好的,我通过首先删除其他应用程序并首先在主用户模型上运行迁移解决了这个问题。谢谢你的帮助。如果您发帖,我很乐意接受您的回答。

标签: python django


【解决方案1】:

在您的用户应用程序中,您应该有一个文件夹 migrations。它应该只包含0001_initial.py__init__.py。对吗?

尝试运行./manage.py sqlmigrate user 0001_initial 并查看它的作用,因为这就是错误的来源

【讨论】:

  • 这是我的问题 - 我从未运行过实际的初始用户迁移。你可能还没有运行python manage.py makemigrations appname,一旦你这样做了,然后migrate,一切都会好起来的。
  • 首先运行 ./manage.py migrate user 0001_initial 工作正常。
【解决方案2】:

另一个问题也可能是您将数据库用于另一个应用程序。因此,如果是这种情况,请在再次进行迁移之前删除数据库

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,我所做的是运行 python manage.py makemigrations <app_name> 并且不要忘记在您的 settings.py 文件中将 <app_name> 添加到 INSTALLED_APPS

    【讨论】:

      猜你喜欢
      • 2016-10-01
      • 2018-05-11
      • 2016-07-05
      • 2014-11-07
      • 2013-12-21
      • 2018-03-05
      • 1970-01-01
      • 2021-07-07
      • 2021-10-26
      相关资源
      最近更新 更多