playframework - 未触发 Play Framework 2.4.3 演变

标签 playframework h2 database-migration

我正在做 todo tutorial玩。当我在 conf/evolutions/default/1.sql 中创建 evolution 时,没有任何反应。我刚得到异常 JdbcSQLException: Table "TASK"not found 这是有道理的。

我在激活器控制台中使用 h2-browser 将进化手动应用到数据库,然后它就可以工作了。但进化不会自动显示。

应用程序.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。

然后它按预期工作。

这些不是必需的,它们会自动应用进化(不显示数据库“默认”需要进化!):

applyEvolutions.db=true
applyEvolutions.default=true
applyDownEvolutions.default=true

关于playframework - 未触发 Play Framework 2.4.3 演变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32561626/

相关文章:

grails - Grails数据库迁移-更改以前的迁移

scala - 尝试了解使用哪个 Play 库

java - iframe 中的 Scala Play 框架 URL 不起作用

java - 使用 H2 数据库进行 JUNIT 测试时出现错误 "expected identifier"

ruby-on-rails - 无法运行迁移。表不存在

django - 在已删除的非空字段上恢复迁移

java - 如何在ubuntu中部署play框架项目?

java - 在多列上创建复合唯一约束

mysql - 未强制执行唯一约束检查

java - 如何从Spring boot连接到H2控制台?