fde*_*lia 3 database-migration h2 playframework
我正在做Play 的todo教程.当我创造进化时conf/evolutions/default/1.sql没有任何反应.我只是得到了JdbcSQLException: Table "TASK" not found有意义的例外.
我使用h2-browser激活器控制台手动将演变应用到DB,之后它可以工作.但是演变不会自动显现.
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
Run Code Online (Sandbox Code Playgroud)
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;
Run Code Online (Sandbox Code Playgroud)
好.我阅读了迁移文档,其中一个必须应用于libraryDependencies += evolutionsbuild.sbt.
然后它像预期的那样工作.
这些都不是必需的,它们会自动应用演化(不显示Database 'default' needs evolution!):
applyEvolutions.db=true
applyEvolutions.default=true
applyDownEvolutions.default=true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4029 次 |
| 最近记录: |