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
, включая вход в систему или доступ к панели администратора. Кстати, я даже не получаю экран входа в админку!
Мне бы хотелось думать, что есть кто-то, кто сталкивался с этим и может указать мне правильный путь. На данный момент я готов попробовать все, что угодно.