Prometheus
Prometheus

Reputation: 33655

Django error: relation "users_user" does not exist

I'm getting the following error during migration:

django.db.utils.ProgrammingError: relation "users_user" does not exist

  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)

This is my model:

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

Settings:

AUTH_USER_MODEL = 'users.User'

Anything I have missed?

Upvotes: 32

Views: 45029

Answers (4)

Mayur Gupta
Mayur Gupta

Reputation: 519

I've also encountered with the same issue in Postgres DB.

Steps to follow:

  • remove previous db and create new one
  • add migration folder and add init.py empty file inside migration folder of each app having models
  • now use command python manage.py makemigrations
  • use command python manage.py migrate

Upvotes: 1

helseroc
helseroc

Reputation: 1

I had the same issues, and what I did was to run python manage.py makemigrations <app_name> and do not forget to add <app_name> to INSTALLED_APPS in your settings.py file

Upvotes: 0

Kelvin Onkundi
Kelvin Onkundi

Reputation: 139

Another issue can also be the fact that you were using the database for another application. So if this can be the case just drop the database before making migrations again

Upvotes: 2

Thomas Gak-Deluen
Thomas Gak-Deluen

Reputation: 2981

Inside your user app, you should have a folder migrations. It should only contain 0001_initial.py and __init__.py. Is that correct?

Try running ./manage.py sqlmigrate user 0001_initial and see what it does, because thats where the error comes from

Upvotes: 49

Related Questions