2013-05-17 2 views
4

저는 Play Framework를 시작하고 H2 메모리 내장 데이터베이스를 사용하여 로컬로 실행되는 장난감 앱을 가지고 있습니다. 내 application.conf 파일은 다음과 같습니다왜 Play/Heroku/Postgres 배포가 암호 오류로 실패합니까?

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

을 그러나 나는 그들이 제공하는 포스트 그레스 데이터베이스를 사용하여, Heroku가 앱을 배포 할 때 배포가 실패 : 내 Procfile 정확히 설명으로

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) 

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

답변

7

이 문제는이 두 가지 속성이 포스트 그레스를 방해 한 것을 : 시작 설명서에서

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

나는 위의 두 줄에서 주석과 푸시 할 때 (당신이 heroku config을 실행하고 DATABASE_URL 재산 봐. 경우 당신이 볼 수있는 포스트 그레스는 이미 URL에 사용자 이름과 암호를 가지고) 다시 Heroku, Postgres 제대로 작동하고, H2는 여전히 로컬로 일했습니다.

+2

공유해 주셔서 감사합니다. 이 Q & A가 불과 한 달 밖에 안됐다는 것을 믿을 수 없습니다 ... Play 2.x는 실제로 성숙한 것이 아니라 문서화 된 것입니다. 이것은 모든 공식 문서를 따르는 동안 데이터베이스가 포함 된 첫 번째 배포 도중에 만난 기본적인 실수입니다. – ripper234

관련 문제