相关疑难解决方法(0)

Heroku - 无法通过Play Framework应用程序设置postgres数据库?

我试图通过播放框架应用程序在heroku上设置postgres数据库,但我一直收到关于我的DATABASE_URL的错误.

堆栈跟踪: -

-----> Heroku receiving push
-----> Play 2.0 - Java app detected
-----> Running: sbt clean compile stage
       Getting net.java.dev.jna jna 3.2.3 ...
       :: retrieving :: org.scala-sbt#boot-jna
        confs: [default]
        1 artifacts copied, 0 already retrieved (838kB/25ms)
       Getting org.scala-tools.sbt sbt_2.9.1 0.11.2 ...
       :: retrieving :: org.scala-sbt#boot-app
        confs: [default]
        37 artifacts copied, 0 already retrieved (7324kB/78ms)
       Getting Scala 2.9.1 (for sbt)...
       :: retrieving :: org.scala-sbt#boot-scala
        confs: [default]
        4 artifacts copied, 0 already retrieved (19939kB/188ms)
       [info] Loading global plugins from /tmp/build_hdhsg4dgyxy/.sbt_home/.sbt/plugins …
Run Code Online (Sandbox Code Playgroud)

postgresql exception heroku playframework

5
推荐指数
1
解决办法
4228
查看次数

如何在Play 2.0(Scala)中使用DATABSE_URL进行PostgreSQL 9.1和Heroku的本地连接?

我使用Play在OSX(Lion 10.7.4)上使用本地PostgreSQL 9.1开发了第一个Web应用程序!框架2.0.3.我开始使用conf/application.conf中定义的数据库连接(相对于应用程序的目录)

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost/fotoplay"
db.default.user=foo
db.default.password=bar
Run Code Online (Sandbox Code Playgroud)

(用户名和密码在发布前已经更改)这适用于编写和测试.我现在想部署到Heroku.我用一行设置了Procfile(在应用程序的目录中):

web: target/start -Dhttp.port=${PORT} ${JAVA_OPTS}  
-DapplyEvolutions.default=false 
-Ddb.default.driver=org.postgresql.Driver 
-Ddb.default.url=$DATABASE_URL
Run Code Online (Sandbox Code Playgroud)

我已经在.bash_profile中导出了DATABASE_URL,以便我可以在系统命令行中回显$ DATABASE_URL并获取

postgres://foo:bar@localhost/photoplay
Run Code Online (Sandbox Code Playgroud)

在Heroku,我已经设置了postgresql的一个实例.我不确定如何编写数据库演变来填充heroku,所以我把它转换为evolutions并手动填充我的数据库.我当前的进化构建表并用一些csv文件中的一些初始数据填充它们,所以我需要将csv文件放在heroku可访问的地方.至少在第一次通过时,我还不想解决这个问题.但是由于手动步骤,我在Heroku上有一个填充的数据库.

使用此配置,我的应用程序在本地正确运行.但是,我没有使用DATABASE_URL,这似乎是错误的.我将其推送到HEROKU并且无法连接到数据库.错误是:

Caused by: org.postgresql.util.PSQLException: 
FATAL: password authentication failed for user "foo"
Run Code Online (Sandbox Code Playgroud)

如果我删除用户名和密码,我会破坏我的本地配置.我应该可以使用DATABASE_URL'而不是'旧语法,但我不知道该怎么做.我不认为我可以通过实验来解决这个问题(游荡的高维空间是没有希望的,并且有几种可能的配置设置可能涉及并且会受到拼写错误).关于如何设置application.conf的任何指导将不胜感激.

heroku playframework-2.0

4
推荐指数
1
解决办法
1704
查看次数