对于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
就像我在介绍中提到的,进化会在应用程序启动时自动应用。