PG::InsufficientPrivilege: ERROR: 必须是数据库的所有者

4

早上好!

当你运行测试时,出现了一个问题,提示与数据库所有者的错误有关,但是在为测试数据库的用户授予权限之前,测试本身已经进行了,请告诉我应该从哪里入手。

测试本身已经进行了,但在弹出此错误之前,用户名和数据库与database.yml中的设置匹配。

我找到了一篇类似的文章,但我有另一个错误,而这个解决方案不适用:ActiveRecord::StatementInvalid: PG::Error: ERROR: must be owner of database

错误代码:PG :: InsufficientPrivilege: ERROR: must be owner of database test

系统:

Rails: 5.0.0

Ruby: 2.3.1

PSQL: 9.5.3


看看这个问题,它会告诉你如何找到“test”的所有者,然后将所有者更改为您的数据库用户。 - SteveTurczyn
https://dev59.com/CmQn5IYBdhLWcg3wAjTJ - SteveTurczyn
谢谢,不是这个问题。在Github上我建议可能是你的开发环境出了问题,但我也找不出具体原因。 - Denis T.
不,用户名并不属于“test”,该用户仅具备特定的权限。 - Denis T.
错误提示为“ERROR: 必须是数据库test的所有者”。请记住,测试准备的一部分涉及完全重置测试数据库,并且测试数据库准备明显正在尝试运行只能由所有者完成的进程。对于“开发”和“预生产”,仅具有特权是可以的,但“测试”则不同。 - SteveTurczyn
显示剩余10条评论
1个回答

3

我遇到了相同的问题。 我的解决方案就是按照Postgres所说的去做:

ALTER ROLE user1 WITH CREATEDB;

# ALTER DATABASE name OWNER TO new_owner;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接