django.db.utils.ProgrammingError:relation" auth_user"不存在

时间:2015-06-21 21:31:07

标签: python django postgresql

当尝试在Django中执行syncdb时,它会失败并显示跟踪回溯。我尝试删除架构并创建一个干净的架构。 migrate会创建迁移,但它永远不会创建django_migrations之外的任何表。我还删除了所有现有的pyc文件作为预防措施,但没有运气。它似乎没有在初始同步时创建任何表。目前没有处理创建的核心表之外的任何模型(auth,sessions等)

System check identified some issues:

WARNINGS:
?: (1_6.W001) Some project unittests may not execute as expected.
    HINT: Django 1.6 introduced a new default test runner. It looks like this project was generated using Django 1.5 or earlier. You should ensure your tests are all running & behaving as expected. See https://docs.djangoproject.com/en/dev/releases/1.6/#new-test-runner for more information.
System check identified some issues:

WARNINGS:
?: (1_6.W001) Some project unittests may not execute as expected.
    HINT: Django 1.6 introduced a new default test runner. It looks like this project was generated using Django 1.5 or earlier. You should ensure your tests are all running & behaving as expected. See https://docs.djangoproject.com/en/dev/releases/1.6/#new-test-runner for more information.
Operations to perform:
  Synchronize unmigrated apps: oauth2_provider, core, django_admin_bootstrapped, rest_framework_swagger, rest_framework, django_admin_bootstrapped_bootstrap3
  Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
  Creating tables...
  Installing custom SQL...
  Installing indexes...
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying sessions.0001_initial... OK
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 533, in handle
    return self.handle_noargs(**options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/syncdb.py", line 36, in handle_noargs
    if not UserModel._default_manager.exists() and options.get('interactive'):
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 92, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 606, in exists
    return self.query.has_results(using=self.db)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/query.py", line 445, in has_results
    return compiler.has_results()
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 757, in has_results
    return bool(self.execute_sql(SINGLE))
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 786, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/utils.py", line 81, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "auth_user" does not exist
LINE 1: SELECT (1) AS "a" FROM "auth_user" LIMIT 1

3 个答案:

答案 0 :(得分:2)

我在Django 1.8中遇到了这个问题,我正在使用自定义用户配置文件,我在文档中建议使用OneToOneField为用户创建。

幸运的是,我将用户个人资料代码隔离在一个名为“个人资料”的单独应用中。

对我来说,这种解决方法解决了这个问题:

  • 禁用自定义用户个人资料,方法是在settings.py中禁用“个人资料”应用,方法是将其从INSTALLED_APPS中删除
  • 运行python manage.py migrate
  • 重新插入应用程序重新启用自定义用户个人资料。

这肯定是由于Django中的一个错误。

答案 1 :(得分:1)

我有类似的问题。最后,我发现并非所有应用都有迁移功能。因此,请检查具有models.py文件的所有已安装应用程序(Django项目明智)是否也具有迁移功能。这解决了我的问题(强制Django为特定应用程序创建迁移),还检查列出了migrations.swappable_dependency(settings.AUTH_USER_MODEL),以及迁移依赖项中的第一个位置。

答案 2 :(得分:0)

我使用之前版本的django(1.5)设置的多个数据库发生此错误。升级没有带到南方的多个数据库。最终我将不得不重新访问这个以便我可以尝试迁移,但与此同时我已经废弃了这个。删除settings.py中的多个数据库实例解决了这个问题。