Django Makemigrations и миграция прошли успешно. Сервер Dev работает как ожидалось. "Relation "auth_user" does not exist " при обслуживании на Nginx

Мое приложение делает все, что должно (вход в систему и связанные с ним функции), работая на сервере разработчиков, доступ к которому осуществляется через порт 8000.

Как только я переключаюсь на Nginx и пытаюсь войти в систему или даже получить доступ к тире администратора:

relation "auth_user" does not exist
LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...

Я на DigitalOcean под управлением Ubuntu 20.4, Postgres и Nginx.

Я пробовал:

  • создание миграций и миграция
  • создание миграций и миграция с использованием имени конкретного приложения
  • удаление таблицы и повторное создание миграций
  • сравнение баз данных на моей локальной машине и на сервере на предмет различий

Мой менеджер пользователей и модель в app.models.py:

class UserManager(BaseUserManager):
    def create_user(self, email, password = None, active = True, staff = False, superuser = False):
        if not email:
            raise ValueError('Users must have an email')
        if not password:
            raise ValueError('Users must have a password')
        user = self.model(email = self.normalize_email(email))
        user.set_password(password)
        user.staff = staff
        user.superuser = superuser      
        user.active = active     
        user.save(using=self._db)
        return user

    def create_staffuser(self, email, password = None):
        user = self.create_user(email, password = password, staff = True)
        return user

    def create_superuser(self, email, password = None):
        user = self.create_user(email, password = password, staff = True, superuser = True)
        return user

class User(AbstractBaseUser):
    user_id         = models.AutoField(primary_key=True)
    email           = models.EmailField(max_length = 255, unique =True, default = 'abc123@domain.ext')
    active          = models.BooleanField(default = True)#can login
    device_active   = models.BooleanField(default = False)#device is unable to perform calculations by default
    staff           = models.BooleanField(default = False)#staff user non superuser
    superuser       = models.BooleanField(default = False)#superuser
    
    USERNAME_FIELD = 'email' #to set username
    #username and passwor fields are required by default
    REQUIRED_FIELDS = []

    objects = UserManager()

    def __str__(self):
        return (str(self.user_id) + ' ' + ' ' + self.email)

    def has_perm(self, perm, obj=None):
        return self.superuser

    def has_module_perms(self, app_label):
        return self.superuser

    @property
    def is_staff(self):
        return self.staff

    @property
    def is_superuser(self):
        return self.superuser
    
    @property
    def is_active(self):
        return self.active

Снова все работает нормально на сервере 0.0.0.0:8000 и на моей локальной машине (точно такое же приложение).

На nginx все выглядит нормально, пока вы не сделаете что-нибудь, требующее auth_user, включая вход в систему или доступ к панели администратора. Кстати, я даже не получаю экран входа в админку!

Мне бы хотелось думать, что есть кто-то, кто сталкивался с этим и может указать мне правильный путь. На данный момент я готов попробовать все, что угодно.

Вернуться на верх