2013-07-07 88 views
0

因此,我在Heroku上放置我的遊戲應用時遇到問題在Heroku上部署Play Framework 2.1.1

通過了幾個教程,但無法使其工作。

我的播放應用程序正在顯示,但數據庫沒有被創建。

當我去通過日誌,這是未來

Database 'default' is in inconsistent state 
.... 
Oops, cannot start the server. 
..... 
ERROR: syntax error at or near "auto_increment" 

這是配置:

  1. 在application.conf所有數據庫行被註釋掉

  2. 1.sql是一樣的正常(無變化)

  3. Procfile是如下

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

1.SQL的縮短的版本如下(自動生成的)

# --- Created by Ebean DDL 
# To stop Ebean DDL generation, remove this comment and start using Evolutions 

# --- !Ups 

create table admin (
    user_id     bigint auto_increment not null, 
    user_name     varchar(255), 
    user_username    varchar(255), 
    user_password    varchar(255), 
    user_privelege_level  integer, 
    user_type     integer, 
    admin_id     bigint, 
    constraint pk_admin primary key (user_id)) 
; 

# --- a lot more tables 

alter table class add constraint fk_class_classteacher_1 foreign key (classteacher_user_id) references teacher (user_id) on delete restrict on update restrict; 
create index ix_class_classteacher_1 on class (classteacher_user_id); 

# --- a lot more fks and indices 

# --- !Downs 

SET FOREIGN_KEY_CHECKS=0; 
drop table admin; 

drop table book; 

# --- a lot more drops 
SET FOREIGN_KEY_CHECKS=1; 

回答

3

我終於完成它。

顯然的Heroku不會重新演變腳本(這並沒有真正意義)

最好的選擇是你的開發切換到PostgreSQL

http://www.postgresql.org/download/

對於可能需要一些指導任何人如何做到這一點

  1. 更改Build.scala添加依賴關係

    "postgresql" % "postgresql" % "9.1-901-1.jdbc4" 
    
  2. 變化application.conf

    db.default.driver=org.postgresql.Driver 
        db.default.url="jdbc:postgresql://servername:port/db_name" 
        db.default.user=postgres 
        db.default.password=pass 
        # Remember to comment user and password while pushing because this will 
        # cause an error as Heroku doesn't automatically use theirs 
    
  3. 運行遊戲應用,並允許進化發生

  4. 提交到GIT,再次按下它會高興的。

+1

謝謝!卡住幾個小時,更新驅動程序解決了這個問題。 – toidiu

3

您正在使用的MySQL語法。
你可以發佈你的SQL嗎?我懷疑你使用

INTEGER NOT NULL AUTO_INCREMENT 

雖然你不應該使用

SERIAL PRIMARY KEY 
+1

我沒有明確地使用任何東西。這是由播放生成的默認的1.sql演變。是否有任何東西(我自己不能改寫整個進化),我可以做到。 PS問題編輯 – cjds

+0

我不確定當我禁用進化。我可以這樣說,就你的情況而言,「Heroku」不會重新生成進化腳本並使用MySQL版本。這裏有人有一個類似的http://stackoverflow.com/questions/10806926/regenerate-evolution-scripts-in-play-2,希望你能解決它我沒有想法。 – Farmor