I have tried to create a simple controller/model (based on the samples code of play 2.0)
and got a message concerning evolution of DB:
Database 'default' needs evolution!
An SQL script will be run on your database - "Apply this script now"
1 # --- Rev:1,Ups - fbdc2fd
2 create table group (
3 id bigint not null,
4 name varchar(255),
5 description varchar(255),
6 due_date timestamp,
7 constraint pk_group primary key (id))
8 ;
9
10 create sequence group_seq;
But when clicking on the button, i have got the below error message:
Database 'default' is in inconsistent state!
An evolution has not been applied properly. Please check the problem and resolve it manually before making it as resolved
We got the following error: SQLステートメントに文法エラーがあります "CREATE TABLE GROUP[*] ( ID BIGINT NOT NULL, NAME VARCHAR(255), DESCRIPTION VARCHAR(255), DUE_DATE TIMESTAMP, CONSTRAINT PK_GROUP PRIMARY KEY (ID)) "; 期待されるステートメント "identifier" Syntax error in SQL statement "CREATE TABLE GROUP[*] ( ID BIGINT NOT NULL, NAME VARCHAR(255), DESCRIPTION VARCHAR(255), DUE_DATE TIMESTAMP, CONSTRAINT PK_GROUP PRIMARY KEY (ID)) "; expected "identifier"; SQL statement: create table group ( id bigint not null, name varchar(255), description varchar(255), due_date timestamp, constraint pk_group primary key (id)) [42001-158] [ERROR:42001, SQLSTATE:42001], while trying to run this SQL script:
1# --- Rev:1,Ups - fbdc2fd
2
3 create table group (
4 id bigint not null,
5 name varchar(255),
6 description varchar(255),
7 due_date timestamp,
8 constraint pk_group primary key (id))
9 ;
10
11 create sequence group_seq;
My configuration file
#DB setting
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
# Ebean configuration
ebean.default="models.*"
My controller
public class Application extends Controller {
/**
*
* @return
*/
public static Result index() {
Group g = new Group("New group Test","This is a test !");
g.save();
return ok(index.render("Render page"));
}
}
And finally my model:
@Entity
public class Group extends Model {
public static Finder<Long,Group> find = new Finder (Long.class, Group.class);
@Id
public Long id;
@Required
public String name;
@Required
public String description;
@DateTime(pattern = "MM/dd/yy")
public Date dueDate;
/**
* ToString method
*/
public String toString() {
return "Group(" + id + ") in project " + name;
}
/**
* Constructor
* @param name
* @param description
*/
public Group(String name, String description){
this.name=name;
this.description=description;
}
}
has someone encounter the same problem ?
Thank you !
It could be that the name of your table (group) is the problem, as it is an SQL keyword. Try quoting the table name (“group”) or test what happens if you use a different table name.