我正在尝试获取一个托管在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实例,所以我知道它已启动,运行且可访问。
有没有其他方法可以让我了解这里发生的事情?
答案 0 :(得分:2)
您无需在Heroku上使用database.yml
值。
但我认为你已经在Heroku上看过这个教程:Authorizing to RDS;您需要为RDS设置安全组,以接受来自-all-IP的传入流量。
在打开所有IP之后,您还应该将RDS限制为仅接受SSL,如文章所示。
可以在AWS docs找到每种RDS类型(Mysql,Postgres等)的更多信息。