5

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

当我运行 rake db:test:prepare 时出现错误:

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

从我在别处读到的内容来看,这是试图删除数据库,但 Heroku 的托管数据库不允许这样做。有谁知道如何在 Heroku 的 Postgresql 上运行 Rails 测试?

4

2 回答 2

3

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

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

这还要求您使用运行版本“麸皮”或更高版本的 Nitrous 盒子(请参阅自述文件)。如果您在“arya”版本上运行,您可能需要终止/创建一个新框。

要使用 autoparts,请运行parts search以查看所有可用的包。

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

零件安装 postgresql

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

于 2013-09-05T17:48:45.140 回答
0

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

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

于 2013-07-31T01:23:02.020 回答