django/mysql table not found - django.db.utils.ProgrammingError: (1146, "Table 'trustline.authentication_user' doesn't exist")

django/mysql table not found - django.db.utils.ProgrammingError: (1146, "Table 'trustline.authentication_user' doesn't exist")

我试图为我的项目“进行迁移”,但每当我这样做时,我都会收到此错误

django.db.utils.ProgrammingError: (1146, "Table 'trustline.authentication_user' doesn't exist" and i have this line in settings.py

AUTH_USER_MODEL = "authentication.User"

这是完整的错误

您的错误源于在导入时尝试使用数据库。 在 Django 中,no-no 在应用程序初始化期间可能导入的模块中使用模块级别的数据库是一个很大的问题,因为应用程序需要被初始化,以便您可以进行或 运行 迁移,如果这样的数据库调用需要一个尚未迁移到现有的 table...那么,我们就在这里。

查看回溯,发生在 utility/email_sending.py,第 27 行,调用 get_admin_emails()

对于这个特殊问题,解决方法应该是

  • 删除 ADMIN_EMAILS = get_admin_emails()(而只是在您现在可能使用 ADMIN_EMAILS 的任何地方调用 get_admin_emails())。
  • 如果您想要与以前相同的性能,请在 get_admin_emails() 上添加一个 @lru_cache@cache 装饰器,这样它就可以工作一次。