我正在研究Michael Hartl的优秀tutorial,但在尝试使用以下命令准备测试数据库时: bundle exec rake db:test:prepare 我收到此错误消息:
错误:必须是数据库sample_app_test的所有者......
这是我在使用开发数据库时从未获得的,因为我为我的Rails应用程序创建了以下数据库角色:
CREATE ROLE demo_app WITH CREATEDB LOGIN
(这是使用Postgresql)
是否有人理解为什么在测试环境中失败? TIA ...
答案 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";
重新创建它们,你应该好好去!