未触发播放框架 2.4.3 演变
Play framework 2.4.3 evolutions not triggered
我正在玩todo tutorial。当我在 conf/evolutions/default/1.sql
中创建进化时,什么也没有发生。我刚得到异常 JdbcSQLException: Table "TASK" not found
,这是有道理的。
我在激活器控制台中使用 h2-browser
将进化手动应用到数据库,然后它就可以工作了。但是进化不会自动显示。
application.conf
# Database configuration
# ~~~~~
# You can declare as many datasources as you want.
# By convention, the default datasource is named `default`
#
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
db.default.username=sa
db.default.password=""
# New
evolutionplugin=enabled
applyEvolutions.db=true
applyEvolutions.default=true
applyDownEvolutions.default=true
# Evolutions
# ~~~~~
# You can disable evolutions if needed
# play.evolutions.enabled=false
# You can disable evolutions for a specific datasource if necessary
# play.evolutions.db.default.enabled=false
1.sql
# Tasks schema
# --- !Ups
CREATE SEQUENCE task_id_seq;
CREATE TABLE task (
id integer NOT NULL DEFAULT nextval('task_id_seq'),
label varchar(255)
);
# --- !Downs
DROP TABLE task;
DROP SEQUENCE task_id_seq;
好的。我读了 migration docs 并且必须将 libraryDependencies += evolutions
应用到 build.sbt。
然后它按预期工作。
这些不是必需的,它们会自动应用进化(不显示 Database 'default' needs evolution!
):
applyEvolutions.db=true
applyEvolutions.default=true
applyDownEvolutions.default=true
Play 2 的更新:
play.evolutions.enabled = true
play.evolutions.autoApply=true
play.evolutions.autoApplyDowns=true
我正在玩todo tutorial。当我在 conf/evolutions/default/1.sql
中创建进化时,什么也没有发生。我刚得到异常 JdbcSQLException: Table "TASK" not found
,这是有道理的。
我在激活器控制台中使用 h2-browser
将进化手动应用到数据库,然后它就可以工作了。但是进化不会自动显示。
application.conf
# Database configuration
# ~~~~~
# You can declare as many datasources as you want.
# By convention, the default datasource is named `default`
#
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
db.default.username=sa
db.default.password=""
# New
evolutionplugin=enabled
applyEvolutions.db=true
applyEvolutions.default=true
applyDownEvolutions.default=true
# Evolutions
# ~~~~~
# You can disable evolutions if needed
# play.evolutions.enabled=false
# You can disable evolutions for a specific datasource if necessary
# play.evolutions.db.default.enabled=false
1.sql
# Tasks schema
# --- !Ups
CREATE SEQUENCE task_id_seq;
CREATE TABLE task (
id integer NOT NULL DEFAULT nextval('task_id_seq'),
label varchar(255)
);
# --- !Downs
DROP TABLE task;
DROP SEQUENCE task_id_seq;
好的。我读了 migration docs 并且必须将 libraryDependencies += evolutions
应用到 build.sbt。
然后它按预期工作。
这些不是必需的,它们会自动应用进化(不显示 Database 'default' needs evolution!
):
applyEvolutions.db=true
applyEvolutions.default=true
applyDownEvolutions.default=true
Play 2 的更新:
play.evolutions.enabled = true
play.evolutions.autoApply=true
play.evolutions.autoApplyDowns=true