我在迁移过程中收到以下错误:
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'
我错过什么了吗?
4条答案
按热度按时间xriantvc1#
在您的用户应用中,您应该有一个文件夹
migrations
。它应该只包含0001_initial.py
和__init__.py
。对吗?试着运行
./manage.py sqlmigrate user 0001_initial
,看看它做了什么,因为这就是错误的来源9lowa7mx2#
另一个问题也可能是您正在为另一个应用程序使用数据库,因此如果是这种情况,只需在再次迁移之前删除数据库即可
wnrlj8wa3#
我遇到了同样的问题,我所做的是运行
python manage.py makemigrations <app_name>
,并且不要忘记在settings.py
文件中将<app_name>
添加到INSTALLED_APPS
wgx48brx4#
我在Postgres DB中也遇到过同样的问题。
应遵循的步骤:
python manage.py makemigrations
python manage.py migrate