微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

postgresql – 为什么我的Play / Heroku / Postgres部署失败并出现密码错误?

我开始使用Play Framework,并拥有一个使用H2内存数据库在本地运行的玩具应用程序.我的application.conf文件如下所示:

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:my-app-db"
db.default.user=sa
db.default.password=""

但是,当我尝试使用他们提供的Postgres数据库将应用程序部署到Heroku时,部署失败:

org.postgresql.util.PsqlException: FATAL: password authentication Failed for user "sa"
2013-05-17T01:22:18.982766+00:00 app[web.1]:    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
2013-05-17T01:22:18.982827+00:00 app[web.1]:    at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125)
2013-05-17T01:22:18.983634+00:00 app[web.1]:    at com.jolBox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:112)
2013-05-17T01:22:18.982915+00:00 app[web.1]:    at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
2013-05-17T01:22:18.982665+00:00 app[web.1]:    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:108)
2013-05-17T01:22:18.982981+00:00 app[web.1]:    at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22)
2013-05-17T01:22:18.983376+00:00 app[web.1]:    at java.sql.DriverManager.getConnection(DriverManager.java:200)

我的procfile完全如入门指南中所述:

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

解决方法

问题是这两个属性干扰了Postgres:

db.default.user=sa
db.default.password=""

(Postgres已经在URL中有用户名密码,因为你可以看到你运行heroku配置并查看DATABASE_URL属性.)

当我评论出上述两行并再次推送到Heroku时,Postgres工作正常,H2仍在本地工作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐