我已经找到了如何将 Heroku 应用指向 AWS RDS 数据库的方法。这使我能够拥有一个巨大的数据库,测试 Amazon 的免费套餐一年,并对我的数据库实例进行更多自定义。此答案是针对 @pseudopeach 的问题作出的回应(请原谅延迟)。
所以这是一个相当简单的设置。要为 Heroku 配置 RDS,您需要非常熟悉 Heroku 和 AWS。
- AWS 部分
a) 设置您的区域。选择最靠近您的地区,例如美国东部(俄亥俄州)
b) 然后点击服务选项卡并选择 RDS
c) 我有一个 db ts micro(我想那是免费套餐选项)
d) 进行 RDS 设置,运行后点击“实例操作”并查看详细信息
e) 在此处,您将能够查看您的 db-username、dbname、端点(对我来说,它类似于这个 url [dbname].[randomstring].us-east-1.rds.amazon.com)和端口号。您需要这些内容加上您的 db 密码,以供 Heroku 使用。
- Heroku 部分
a) 转到 heroku.com 上的您的 Heroku 应用程序,然后点击设置
b) 点击 revealconfig variables
典型的 Heroku 变量看起来像这样:
DATABASE_URL xxxxxx
HEROKU_POSTGRESQL_VIOLET_URL xxxxxx
LANG xxxxxx
RACK_ENV 生产
RAILS_ENV 生产
SECRET_KEY_BASE xxxxxx
您需要相当大程度地更改这些内容
DATABASE_URL [注意:此处要更改为不同且较长的 url —— 我的看起来像这样分解了一下,以便易于理解]
postgres://
[db-username]:
[您的 db 密码]
@[端点]:
[您的 db 端口号]/
[db 名称]
?sslca=config/amazon-rds-ca-cert.pem
&sslmode=require
&encrypt=true
数据库 url 示例:
postgres://jdoe:supersecretpassword@mydb.coua7574xvna.us-east-1.rds.amazonaws.com:5432/mydb?sslca=config/amazon-rds-ca-cert.pem&sslmode=require&encrypt=true
EXTERNAL_DATABASE amazon-rds-ca-cert.pem
EXTERNAL_DATABASE_CA amazon-rds-ca-cert.pem
LANG (相同)
RACK_ENV (相同)
RAILS_ENV (相同)
RDS_DB_PASS [您的 db 密码]
RDS_DB_PORT [您的 db 端口号,即 5432]
RDS_READS_DB_NAME [db 名称]
RDS_HOST [端点 url]
RDS_USER [数据库用户名]
这对我很有用,我得到了一年免费使用 RDS 的机会,我使用的是 postgreSQL 数据库,它的行数超过了 10,000 行(我相信这是 heroku 上的免费套餐限制)。因此这些配置可能更适用于 postgres。