无法在Heroku的托管Postgres数据库上运行Ruby on Rails测试

时间:2013-07-31 01:02:23

标签: ruby-on-rails postgresql heroku nitrousio

我目前正在评估Nitrous.io,并且喜欢到目前为止我所看到的内容。我目前在Heroku的托管Postgresql服务上运行了一些用于测试和开发的数据库。我在运行测试时遇到了一些问题,我希望这里的某个地方可能有解决方案。

当我运行rake db:test:prepare我收到错误:

 FATAL:  permission denied for database "postgres"                                                                                                                  
 DETAIL:  User does not have CONNECT privilege.   

从我在其他地方读到的,那是尝试DROP数据库,但Heroku的托管数据库不允许这样做。有没有人知道如何在Heroku的Postgresql上运行Rails测试?

2 个答案:

答案 0 :(得分:3)

Nitrous.IO发布了一个软件包管理器,允许您在Nitrous框中安装Postgres。如果需要,这可以用于您的测试数据库以及您的开发数据库:

https://github.com/action-io/autoparts

这还要求你使用的是Nitrous盒子正在运行版本“bran”或更高版本(见README)。如果您在“arya”版本上运行,则可能需要终止/创建一个新框。

要使用汽车零部件,请运行parts search以查看所有可用的软件包。

要在Nitrous框中安装postgresql,请运行以下命令:

  

部分安装postgresql

确保您的config/database.yml文件为您要连接的每个数据库显式设置host: localhost,否则pg适配器将无法找到需要连接的套接字。

答案 1 :(得分:0)

根据Heroku文档,您需要在rake任务中使用“heroku pg:reset”。

https://devcenter.heroku.com/articles/rake