嗨,我是Play框架和Heroku的新手。我被要求参与由Heroku托管的播放应用程序,该应用程序是由其他人编写的。该应用程序附加了一个PostgreSQL数据库。
我想知道最好的方法是什么。每次我做一些更改以查看结果时,我都不想将我的应用程序推送到heroku。
&#34>播放"播放"由于远程数据库问题,命令无法在本地运行。我复制DATABASE_URL值并将其放在配置文件中,但它仍然无效,因为它说" SSL关闭"似乎打开SSL并不容易。关于我应该如何处理这个项目的任何想法?
提前谢谢!
答案 0 :(得分:0)
要从本地计算机访问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
文件。当然,您可能希望使用开发数据库进行本地开发,但如果您愿意,这可以让您获得生产。