Django/mysql таблица не найдена - django.db.utils.ProgrammingError: (1146, "Таблица 'trustline.authentication_user' не существует")

Я пытался "makemigrations" для моего проекта, но всякий раз, когда я делаю это, я получаю эту ошибку

django.db.utils.ProgrammingError: (1146, "Таблица 'trustline.authentication_user' не существует" и у меня есть эта строка в settings.py

AUTH_USER_MODEL = "authentication.User"

вот полная ошибка

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

Просматривая трассировку, это происходит в utility/email_sending.py, строка 27, вызов get_admin_emails().

Для этой конкретной проблемы исправление должно быть следующим

  • удалите ADMIN_EMAILS = get_admin_emails() (и вместо этого просто вызывайте get_admin_emails() везде, где вы сейчас используете ADMIN_EMAILS).
  • и если вы хотите получить ту же производительность, что и раньше, наложите на @lru_cache или @cache декоратор на get_admin_emails(), чтобы он выполнял свою работу один раз.
Вернуться на верх