Getting ProgrammingError: relation "auth_user" does not exist while running test

Getting ProgrammingError: relation "auth_user" does not exist while running test

最近我遇到了这个让我发疯的问题,但在互联网上没有找到任何解决方案。 我不知道问题是什么时候产生的,或者我做了什么导致了这个问题,但现在每次我想 运行 在我的 Django 应用程序中进行测试时,都会出现这个错误:

Traceback (most recent call last):
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 89, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.UndefinedTable: relation "auth_user" does not exist


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/mohammad/Projects/IP_Camera/manage.py", line 22, in <module>
    main()
  File "/home/mohammad/Projects/IP_Camera/manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
    utility.execute()
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 440, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/core/management/commands/test.py", line 24, in run_from_argv
    super().run_from_argv(argv)
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/core/management/base.py", line 414, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/core/management/base.py", line 460, in execute
    output = self.handle(*args, **options)
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/core/management/commands/test.py", line 68, in handle
    failures = test_runner.run_tests(test_labels)
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/test/runner.py", line 1000, in run_tests
    old_config = self.setup_databases(
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/test/runner.py", line 898, in setup_databases
    return _setup_databases(
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/test/utils.py", line 220, in setup_databases
    connection.creation.create_test_db(
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/db/backends/base/creation.py", line 79, in create_test_db
    call_command(
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 198, in call_command
    return command.execute(*args, **defaults)
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/core/management/base.py", line 460, in execute
    output = self.handle(*args, **options)
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/core/management/base.py", line 98, in wrapped
    res = handle_func(*args, **kwargs)
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/core/management/commands/migrate.py", line 255, in handle
    self.sync_apps(connection, executor.loader.unmigrated_apps)
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/core/management/commands/migrate.py", line 402, in sync_apps
    with connection.schema_editor() as editor:
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/db/backends/base/schema.py", line 157, in __exit__
    self.execute(sql)
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/db/backends/base/schema.py", line 192, in execute
    cursor.execute(sql, params)
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 67, in execute
    return self._execute_with_wrappers(
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 84, in _execute
    with self.db.wrap_database_errors:
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/db/utils.py", line 91, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/home/mohammad/Projects/IP_Camera/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 89, in _execute
    return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "auth_user" does not exist

有人知道这里发生了什么吗? 提前致谢。

回答

答案查过了。我评论了更多信息和细节。

参见问题。

This appears to happen with any inconsistency between your models and migration files when running unit tests.

确保您的应用中有 migrations/__init__.pymigrate