【发布时间】:2011-11-17 08:33:49
【问题描述】:
对于play 1.x,我们可以使用play evolutions:apply,在play-2.0-beta 中如何操作?
【问题讨论】:
对于play 1.x,我们可以使用play evolutions:apply,在play-2.0-beta 中如何操作?
【问题讨论】:
Evolution:apply 在应用程序启动时自动运行。 Play 2.0-rc1 中缺少的是一种生成进化脚本的方法,并从 SBT 控制台手动应用它们。
但这里是手动创建它们的方法。
假设你在application.conf中有如下定义
db.mydb.driver=org.h2.Driver
db.mydb.url=jdbc:h2:mem:play
Play2 将在以下文件夹中寻找进化:application/db/evolutions/mydb/
在这个文件夹中,以sql文件的形式存储进化,使用进化步骤作为文件名。
例如:
application/db/evolutions/mydb/1.sql
application/db/evolutions/mydb/2.sql
application/db/evolutions/mydb/3.sql
现在sql本身的结构如下:
# --- !Ups
create table company (
id bigint not null,
name varchar(255),
constraint pk_company primary key (id));
# --- !Downs
drop table if exists company;
!Ups 用于将模型升级到下一个演变
!Downs 用于恢复 !Ups
就像我在介绍中所说,进化将在应用程序启动时神奇地应用。
【讨论】: