2015-09-14 2 views
3

Я делаю todo tutorial игры. Когда я создал эволюцию в conf/evolutions/default/1.sql, ничего не происходит. Я просто получаю исключение JdbcSQLException: Table "TASK" not found, что имеет смысл.Play framework 2.4.3 эволюции не срабатывает

Я применил эволюцию вручную к БД с помощью 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; 

ответ

6

Ok. Я прочитал migration docs, и нужно применить libraryDependencies += evolutions к build.sbt.

Тогда он работает, как и ожидалось.

Они не нужны, они будут автоматически применять эволюцию (не показывая Database 'default' needs evolution!):

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

Просто обновление для игры 2:

play.evolutions.enabled = true 
play.evolutions.autoApply=true 
play.evolutions.autoApplyDowns=true 
Смежные вопросы