所以我在将我的游戏应用程序放在Heroku上时遇到了问题
经历了几个教程,但无法让它发挥作用。
我的播放应用程序正在显示,但没有创建它的数据库。
当我查看日志时,即将到来
Database 'default' is in inconsistent state
....
Oops, cannot start the server.
.....
ERROR: syntax error at or near "auto_increment"
这是配置:
在application.conf中,所有数据库行都被注释
1.sql
与正常相同(无变化)
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;
答案 0 :(得分:3)
您正在使用MySQL语法 你可以发布你的SQL吗?我怀疑你用
INTEGER NOT NULL AUTO_INCREMENT
你应该使用
SERIAL PRIMARY KEY
答案 1 :(得分:3)
我终于完成了它。
显然Heroku不会重新生成进化脚本(这并不是真的有意义)
最佳选择是将您的开发切换到POSTGRESQL
http://www.postgresql.org/download/
对于任何可能需要某些指导如何做的人
更改Build.scala添加依赖项
"postgresql" % "postgresql" % "9.1-901-1.jdbc4"
更改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
运行播放应用并允许演变发生
致力于git,再次推动并开心。