耙子流产了!错误:必须是数据库的所有者

时间:2011-08-26 21:05:48

标签: ruby-on-rails-3 postgresql

我正在研究Michael Hartl的优秀tutorial,但在尝试使用以下命令准备测试数据库时: bundle exec rake db:test:prepare 我收到此错误消息:

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

这是我在使用开发数据库时从未获得的,因为我为我的Rails应用程序创建了以下数据库角色:

CREATE ROLE demo_app WITH CREATEDB LOGIN

(这是使用Postgresql)

是否有人理解为什么在测试环境中失败? TIA ...

2 个答案:

答案 0 :(得分:15)

您确定测试数据库的所有权吗?尝试在Postgres控制台客户端上运行\l命令并检查所有权。您也可以尝试以下查询:

ALTER DATABASE sample_app_test OWNER TO demo_app;

答案 1 :(得分:1)

第一篇文章,为后代写下来。我有同样的问题,但能够解决它。您只需确保在创建数据库(或抛出错误的数据库)时以超级用户身份登录。

我使用以下代码登录psql:

sudo sudo -u postgres psql 

并创建了我的数据库。 这很糟糕。您想使用以下超级用户凭据登录:

sudo su - postgres

然后在您登录postgres之后:

psql 

然后创建数据库。您可以使用命令

终止旧数据库
DROP DATABASE "database_to_drop";

重新创建它们,你应该好好去!