【问题标题】:Why won't my database reset using django_extensions, postgres, and psycopg2?为什么我的数据库不能使用 django_extensions、postgres 和 psycopg2 重置?
【发布时间】:2015-06-07 15:22:52
【问题描述】:

我正在使用 django-extensions reset_db 命令并收到以下错误:

psycopg2.ProgrammingError: database "database_name" already exists

我已验证我的用户具有 CreateDB 和登录权限。所有软件包都是最新的。如何判断为什么无法正确重置数据库?

【问题讨论】:

  • 您是否尝试使用./manage.py reset_db --verbosity=3 运行该命令。也许它包括一些更有用的输出。此外,--traceback 选项可能会显示更多失败的上下文。
  • 刚试过,什么也没做。我相信这些设置标志适用于 django 管理员,而不是 django-extensions,它是它自己的包并控制 reset_db 命令:github.com/django-extensions/django-extensions
  • 查看命令我认为问题可能是当删除数据库失败时,这只会被记录下来,但命令实际上并没有引发或退出,所以脚本继续(see this try block)。如果您有日志记录设置,您可以检查您的日志以获取回溯吗?如果没有,您可以在调试时编辑脚本以查看删除数据库是否有效或有错误。

标签: django postgresql psycopg2 django-extensions


【解决方案1】:

原来我的用户不是数据库的所有者 - postgres 超级用户是。

我将数据库的所有者更改为我的 Django 用户,reset_db 命令有效:

ALTER DATABASE database_name OWNER TO owner_name;

【讨论】:

    猜你喜欢
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 2012-01-26
    • 1970-01-01
    • 2011-07-18
    • 2021-06-05
    • 1970-01-01
    相关资源
    最近更新 更多