耙子中止!错误:必须是数据库的所有者

15

我正在学习Michael Hartl的优秀教程,但是当尝试使用命令准备测试数据库时:

<code>bundle exec rake db:test:prepare</code>

我收到了以下错误消息:

ERROR: 必须是数据库sample_app_test的所有者...

在开发数据库中使用时,我从未遇到过这种情况,因为我为我的Rails应用程序创建了以下数据库角色:

CREATE ROLE demo_app WITH CREATEDB LOGIN

(这是使用Postgresql)

有人能理解为什么在测试环境中会出现这种错误吗?TIA...


我忘了提到我正在使用Rails 3.0.9,ruby 1.8.7和Postgres 8.4.8,并且我没有遇到上述任何问题。 - rixter
2
你解决了吗?我也遇到了同样的问题。 - nicholaides
2个回答

22
你确认测试数据库的所有权吗?尝试在Postgres控制台客户端上运行\l命令并检查所有权。你还可以尝试以下查询: ALTER DATABASE sample_app_test OWNER TO demo_app;

1
你在语句末尾忘记了 ; ;) - ipatch

3

首篇文章,为了纪念而写下。我曾遇到相同的问题,但已解决。只需确保在创建数据库时(或出现错误的数据库)以超级用户身份登录即可。

我使用以下代码登录psql:

sudo sudo -u postgres psql 

我创建了数据库。这是不好的。你需要使用超级用户凭据登录:

sudo su - postgres

接着在登录到postgres之后:

psql 

接下来创建你的数据库。你可以使用以下命令删除旧的数据库:

DROP DATABASE "database_to_drop";

重新创建它们,你就可以继续前进了!

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