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

Rails App on Heroku Can't Connect to RDS

我正在尝试获取托管在 Heroku 上且当前使用 Heroku-Postges 的 Rails 应用程序,而不是使用 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 实例,所以我知道它已启动,运行 并且可以访问。

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

您不需要 fiddle 在 Heroku 上使用您的 database.yml 值。

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

在对所有 IP 开放后,您还应该按照文章的建议将 RDS 限制为仅接受 SSL。

有关每种 RDS 类型(Mysql,例如 Postgres)的更多信息,请访问 AWS docs