django - django 1.8无法执行django.db.utils.ProgrammingError:关系“auth_user”不存在

标签 django django-models

我有一个使用django 1.7的工作项目,现在我将其移至django 1.8。
我可以执行syncdb并使用sqlite运行应用程序,但是当我切换到postgres时,它无法执行syncdb:

  Creating tables...
    Creating table x
    Creating table y
    Running deferred SQL...
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "~/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "~/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "~/venv/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv
    self.execute(*args, **cmd_options)
  File "~/venv/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
    output = self.handle(*args, **options)
  File "~/venv/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 25, in handle
    call_command("migrate", **options)
  File "~/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 120, in call_command
    return command.execute(*args, **defaults)
  File "~/venv/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
    output = self.handle(*args, **options)
  File "~/venv/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 179, in handle
    created_models = self.sync_apps(connection, executor.loader.unmigrated_apps)
  File "~/venv/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 317, in sync_apps
    cursor.execute(statement)
  File "~/venv/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "~/venv/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "~/venv/lib/python2.7/site-packages/django/db/utils.py", line 97, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "~/venv/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute
    return self.cursor.execute(sql)
django.db.utils.ProgrammingError: relation "auth_user" does not exist


我尝试删除数据库并重新创建它。
另外,我尝试了:

python manage.py migrate auth


这也失败了:

django.db.utils.ProgrammingError: relation "django_site" does not exist

LINE 1: SELECT (1) AS "a" FROM "django_site" LIMIT 1


请帮助解决此问题。

最佳答案

我不喜欢注释/取消注释代码的想法,因此尝试了另一种方法:我“手动”迁移了一些应用程序,然后为其余的应用程序运行django-admin.py migrate。删除所有*.pyc文件后,我的命令顺序为:

$ django-admin.py migrate auth
$ django-admin.py migrate contentypes
$ django-admin.py migrate sites
$ django-admin.py migrate MY_CUSTOM_USER_APP
$ django-admin.py migrate


其中,MY_CUSTOM_USER_APP是包含我在AUTH_USER_MODEL文件中设置了settings的模型的应用程序的名称。

希望能有所帮助。顺便说一句,在Django 1.8中同步数据库的最佳方法如此复杂似乎很奇怪。我想知道我是否缺少某些东西(我对Django 1.8不太熟悉,我曾经使用过较旧的版本)

关于django - django 1.8无法执行django.db.utils.ProgrammingError:关系“auth_user”不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30897442/

相关文章:

python - 使用 Django 模型继承时如何避免这种冗余?

javascript - Angular ui bootstrap modal 传递多个参数

django - 如何在 django : Storage or database 中存储 google oauth token

python - Django ( python ): DatabaseError : x Table has No Column named y

python - 如何让 create 语句尊重自定义 Django 字段中的 "from_db_value"?

python - 属性错误: type object 'Product' has no attribute '_meta'

django - 我的 Django 网站中出现 SystemCheckError,为什么会出现这些中间件错误?

Django:不希望同一模型的两个外键的相关管理器

python - Django:解压参数列表以在聚合查询中使用

python - 无法将用户字段内联到 UserProfile 管理选项卡 - 'auth.User' 没有外键到 'MyApp.UserProfile'