2012-04-03 1 views
3

Play V2를 사용하는 Heroku에서. 로컬에서 테스트 할 때 모든 것이 잘 작동하지만 Heroku에 배포하고 PostgreSQL 데이터베이스에 저장하려고하면 다음과 같은 오류가 발생합니다.Heroku 앱 (재생)이 로컬에서 정상적으로 작동 한 다음 서버의 데이터베이스에 저장하지 않음

내 Procfile에 내가 가지고 있습니다.

2012-04-03T18:16:05+00:00 app[web.1]: play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[PersistenceException: Error getting sequence nextval]] 
2012-04-03T18:16:05+00:00 app[web.1]: ! @6a0gdoh95 - Internal server error, for request [POST /users] -> 
2012-04-03T18:16:05+00:00 app[web.1]: at play.core.ActionInvoker$$anonfun$receive$1.a 

2012-04-03T18:16:05+00:00 app[web.1]: [error] application - 
2012-04-03T18:16:05+00:00 app[web.1]: 
2012-04-03T18:16:05+00:00 app[web.1]: 
2012-04-03T18:16:05+00:00 app[web.1]: at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:63) [play_2.9.1-2.0.jar:2.0] 
2012-04-03T18:16:05+00:00 app[web.1]: at play.core.ActionInvoker.apply(Invoker.scala:61) [play_2.9.1-2.0.jar:2.0] 
2012-04-03T18:16:05+00:00 app[web.1]: at com.avaje.ebean.config.dbplatform.SequenceIdGenerator.loadMoreIds(SequenceIdGenerator.java:163) ~[ebean-2.7.3.jar:na] 
2012-04-03T18:16:05+00:00 app[web.1]: at com.avaje.ebeaninternal.server.deploy.BeanDescriptor.nextId(BeanDescriptor.java:1218) ~[ebean-2.7.3.jar:na] 
2012-04-03T18:16:05+00:00 app[web.1]: at com.avaje.ebean.config.dbplatform.SequenceIdGenerator.getMoreIds(SequenceIdGenerator.java:213) ~[ebean-2.7.3.jar:na] 
2012-04-03T18:16:05+00:00 app[web.1]: at akka.actor.ActorCell.invoke(ActorCell.scala:617) [akka-actor-2.0.jar:2.0] 
2012-04-03T18:16:05+00:00 app[web.1]: at com.avaje.ebeaninternal.server.persist.DefaultPersister.setIdGenValue(DefaultPersister.java:1304) ~[ebean-2.7.3.jar:na] 
2012-04-03T18:16:05+00:00 app[web.1]: at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:179) [akka-actor-2.0.jar:2.0] 
2012-04-03T18:16:05+00:00 app[web.1]: at akka.actor.Actor$class.apply(Actor.scala:290) [akka-actor-2.0.jar:2.0] 
2012-04-03T18:16:05+00:00 app[web.1]: at com.avaje.ebean.config.dbplatform.SequenceIdGenerator.nextId(SequenceIdGenerator.java:118) ~[ebean-2.7.3.jar:na] 
2012-04-03T18:16:05+00:00 app[web.1]: Caused by: javax.persistence.PersistenceException: Error getting sequence nextval 
2012-04-03T18:16:05+00:00 app[web.1]: at com.avaje.ebeaninternal.server.persist.DefaultPersister.insert(DefaultPersister.java:403) ~[ebean-2.7.3.jar:na] 
2012-04-03T18:16:05+00:00 app[web.1]: at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1810) ~[postgresql-8.4-702.jdbc4.jar:na] 
2012-04-03T18:16:05+00:00 app[web.1]: at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271) ~[postgresql-8.4-702.jdbc4.jar:na] 
2012-04-03T18:16:05+00:00 app[web.1]: at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2077) ~[postgresql-8.4-702.jdbc4.jar:na] 
2012-04-03T18:16:05+00:00 app[web.1]: at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386) ~[postgresql-8.4-702.jdbc4.jar:na] 
2012-04-03T18:16:05+00:00 app[web.1]: Caused by: org.postgresql.util.PSQLException: ERROR: relation "user_seq" does not exist 
2012-04-03T18:16:05+00:00 app[web.1]: at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257) ~[postgresql-8.4-702.jdbc4.jar:na] 
2012-04-03T18:16:05+00:00 app[web.1]: at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:498) ~[postgresql-8.4-702.jdbc4.jar:na] 
+0

테이블이 스키마에서 생성되고 있습니까? 그것은 삽입을 할 다음 자동 증가 ID를 찾을 수없는 것 같습니다. 어쨌든 테이블 구조와 모델을 보여줄 수 있습니까? 특히 사용자 모델 및 테이블 설명. –

+0

Ebean이 실행해야하는 1.sql을 만들었습니다. 실행되었거나 적어도 수동으로 실행하면 볼 수있는 방법이 있습니까? – William

+0

이 예제 앱을 수정하여 문제를 재현 할 수 있는지 알 수 있습니까? https://github.com/jamesward/play2bars-java (이 예제는 Heroku의 현재 상태에서 작동합니다.) –

답변

2

2012-04-03T18:16:05+00:00 app[web.1]: Caused by: org.postgresql.util.PSQLException: ERROR: relation "user_seq" does not exist

이 데이터베이스가 일부 테이블이 누락되어 있음을 나타냅니다 같다 : 여기

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

내 Heroku가 오류 로그입니다. 스키마가 올바른지 확인하십시오. heroku pg:psql을 사용하여 DB에 콘솔을 가져올 수 있습니다.

처음부터 로컬에서 포스트그레스를 설정하고이를 수행하는 모든 단계가 응용 프로그램이나 스크립트에 의해 자동화되어 이러한 사항을 잊어 버리는 것이 좋습니다.

관련 문제