在Play! Framework 2.0(scala)中连接到Heroku的PostgreSQL
我花了很多時間研究如何在Play Framework(Scala)中連接到Heroku的PostgreSQL,所以我想在這裡記錄一下方法。
由於是根據文檔進行嘗試和錯誤,我無法確定這是否是正確的方法。
如果有任何错误,请指出来。
确认已安装的附加组件
heroku addons --app アプリケーションID
=== アプリケーションID Configured Add-ons
heroku-postgresql:dev HEROKU_POSTGRESQL_BRONZE
heroku-postgresql:dev HEROKU_POSTGRESQL_CHARCOAL
确认Heroku上安装了PostgreSQL插件。
如果未安装,请使用以下命令进行添加。
heroku addons:add heroku-postgresql --app アプリケーションID
确认数据库的URL
heroku config
DATABASE_URL: postgres://XXXXXXXXXXXXX
・・・
确认是否显示 DATABASE_URL
设置Procfile
请在 Procfile 中写入以下内容。
web: target/start -Dhttp.port=${PORT} -DapplyEvolutions.default=true -Ddb.default.url=${DATABASE_URL} -Ddb.default.driver=org.postgresql.Driver
在application.conf中指定数据库的URL
db.default.url="jdbc:postgresql://localhost/XXXXX"
db.default.url=${?DATABASE_URL}
如果按照上述方式编写,当环境变量DATABASE_URL被设置时,db.default.url的值将被更新。
在本地进行测试时,db.default.url将为本地URL,而在Heroku上运行时将为${DATABASE_URL}。
将代码推送到Heroku进行测试。
只需将代码推送到Heroku,就会自动部署。
当事情发生时,没有达到预期或者出现困难的情况。
通过查看日志来解决问题
heroku logs
使用psql控制台连接到位于服务器上的PostgreSQL数据库。
heroku pg:psql
只有在本地安装了psql才能执行。
参考的链接是https://devcenter.heroku.com/articles/heroku-postgresql。