如何使用DATABSE_URL在播放2.0(斯卡拉)用于本地连接到PostgreSQL 9.1和He

2019-09-21 09:44发布

我一直在使用的OSX本地的PostgreSQL 9.1(狮子10.7.4)使用游戏开发的第一个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

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

web: target/start -Dhttp.port=${PORT} ${JAVA_OPTS}  
-DapplyEvolutions.default=false 
-Ddb.default.driver=org.postgresql.Driver 
-Ddb.default.url=$DATABASE_URL

我在.bash_profile中导出DATABASE_URL这样我就可以在呼应系统命令行$ DATABASE_URL并获得

postgres://foo:bar@localhost/photoplay

在Heroku的,我已成立的PostgreSQL的一个实例。 我不知道如何编写一个数据库进化来填充Heroku的,所以我把那个断演变和手动填充我的数据库。 我现在的变阵建表,并与一些CSV文件,一些初始数据填充它们,所以我需要把CSV文件,Heroku的地方访问。 至少在第一遍,我不想解决这个问题,只是还没有。 但由于手工步骤的结果,我在Heroku上填充的数据库。

根据这样的结构,我的应用程序运行正常本地。 不过,我没有使用DATABASE_URL,这似乎是错误的。 我推这Heroku的,并不能连接到数据库。 错误是:

Caused by: org.postgresql.util.PSQLException: 
FATAL: password authentication failed for user "foo"

如果删除了用户名和密码,我打破了我的本地配置。 我应该能够使用DATABASE_URL“而不是”旧语法,但我不太知道该怎么做。 我不认为我能算出这个实验(流浪高维空间是没有希望的,有可能涉及到与受错别字几个可能的配置设置)。 我应该如何设置application.conf任何指导,将不胜感激。

Answer 1:

值得一试:在您的application.conf文件,改变你的db.default.url为了在URL中包含的用户名和密码参数,并删除db.default.userdb.default.password参数:

db.default.url="postgres://foo:bar@localhost/fotoplay"


文章来源: How to use DATABSE_URL in Play 2.0 (Scala) for local connection to PostgreSQL 9.1 & Heroku?