5

对于 play 1.x,我们可以使用play evolutions:apply, 如何在 play-2.0-beta 中做到这一点?

4

1 回答 1

11

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

就像我在介绍中所说,进化将在应用程序启动时神奇地应用。

于 2011-11-25T21:43:50.300 回答