【问题标题】:Postgres user can't create database when running django tests运行 django 测试时 Postgres 用户无法创建数据库
【发布时间】:2016-09-06 07:19:10
【问题描述】:

我创建了一个用户,并赋予它所需的权限 - 即

ALTER USER myuser CREATEDB

我可以以此用户身份登录 psql 并创建一个数据库,但是当我尝试运行 django 测试时,我得到“权限被拒绝”:

$ ./manage.py test
Creating test database for alias 'default'...
Got an error creating the test database: permission denied to create database

我在另一个运行同一个 postgres 实例的 django 项目中没有这样的问题,所以我的 django 项目一定是导致错误的原因。 python和django版本是一样的。

有什么想法吗?

【问题讨论】:

  • 运行测试时你应该是myuser。也许您应该更新 settings.py 中的DATABASES 设置以进行单元测试
  • 如果您使用相同的myuser,请检查测试设置。
  • 没有测试设置,实际上甚至还没有任何测试,但我认为django只是使用默认用户进行测试?我如何知道我的测试正在使用哪个用户?
  • 我是个白痴。这是一个本地设置文件,该文件中的用户没有所需的权限。

标签: python django postgresql


【解决方案1】:

以下步骤可能会对您有所帮助,

CREATE DATABASE test_database;
CREATE USER tester WITH PASSWORD 'test_password';
GRANT ALL PRIVILEGES ON DATABASE "test_database" to tester;

【讨论】:

    【解决方案2】:

    确保您实际上是以您认为的用户身份运行 - 例如,检查任何本地设置文件

    【讨论】:

      猜你喜欢
      • 2016-01-18
      • 1970-01-01
      • 2016-03-21
      • 2012-04-20
      • 2013-05-10
      • 2022-12-07
      • 2011-11-04
      • 2021-02-18
      • 1970-01-01
      相关资源
      最近更新 更多