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。
我正在尝试获取托管在 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。