如何在Play Framework 2.0中使用Evolutions?

时间:2011-11-17 08:33:49

标签: playframework-2.0

对于play 1.x,我们可以使用play evolutions:apply,我怎样才能在play-2.0-beta中使用它?

1 个答案:

答案 0 :(得分:11)

Evolution:应用程序在应用程序启动时自动运行。 Play 2.0-rc1中缺少的是一种生成evolutions脚本并从SBT控制台手动应用它们的方法。

但是这里是如何手动创建它们。

假设您在application.conf

中有以下定义
db.mydb.driver=org.h2.Driver
db.mydb.url=jdbc:h2:mem:play

Play2将在以下文件夹中查找进化:application/db/evolutions/mydb/ 在此文件夹中,evolutions应存储为sql文件,使用evolution步骤作为文件名。

例如:

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

就像我在介绍中所说的那样,演变将在应用程序启动时神奇地应用。