Heroku上的Rails应用程序无法连接到RDS

时间:2017-01-24 23:21:22

标签: ruby-on-rails postgresql heroku amazon-rds

我正在尝试获取一个托管在Heroku上的Rails应用程序,目前正在使用Heroku-Postges,而是使用AWS / RDS实例作为其数据存储区。问题是rails应用程序似乎无法获得连接,并且每次与数据库通信时它都会挂起。

我从阅读一些关于此的文章中收集到,将Heroku指向它的数据库的方式是使用DATABASE_URL形式的postgres://[dbuser]:[dbpass]@[subhost].amazonaws.com:5432/[dbname]参数。

这是怎么回事?我对它如何覆盖database.yml值感到困惑。

我还尝试按照说明下载证书并将其存储在config/ca文件夹中,然后附加?sslca=config/ca/rds-ssl-ca-cert.pem&sslmode=require&encrypt=true

我可以使用PGAdmin直接连接到RDS实例,所以我知道它已启动,运行且可访问。

有没有其他方法可以让我了解这里发生的事情?

1 个答案:

答案 0 :(得分:2)

您无需在Heroku上使用database.yml值。

但我认为你已经在Heroku上看过这个教程:Authorizing to RDS;您需要为RDS设置安全组,以接受来自-all-IP的传入流量。

在打开所有IP之后,您还应该将RDS限制为仅接受SSL,如文章所示。

可以在AWS docs找到每种RDS类型(Mysql,Postgres等)的更多信息。