2013-07-07 2 views
0

Так у меня проблема, кладя мою игру приложение на HerokuPlay Framework 2.1.1 развертывания на Heroku

Ехали через пару учебники, но не мог заставить его работать.

Приложение для воспроизведения отображается, но база данных для него не создается.

Когда я иду через журналы это приходит

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. Commit к мерзавцу, нажмите на нее снова и быть счастливыми.

+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

Смежные вопросы