为了从本地机器访问 Heroku Postgres 数据库,必须使用 SSL 连接。为此,您需要将以下查询参数添加到数据库连接字符串中:
?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
另外,在本地运行时,我建议使用Foreman,它可以读取您的 Procfile 并注入环境变量,就像在 Heroku 上一样。要设置要使用的环境变量,请创建(但不要签入)一个.env文件,其中包含您希望应用程序可用的键值对。例如,像这样:
DATABASE_URL=postgres://user:pass@ec2-107-22-182-123.compute-1.amazonaws.com:5432/db?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
然后,您将能够像这样运行您的应用程序:
foreman run play run
提示:为了使创建.env更容易,请检查heroku-config插件,它提供了heroku config:pull将配置从应用程序拉到.env文件的命令。当然,您可能希望使用 dev 数据库进行本地开发,但如果您愿意,这会让您投入生产。