Как использовать Evolutions в Play Framework 2.0? - PullRequest
5 голосов
/ 17 ноября 2011

Для игры 1.x мы можем использовать play evolutions:apply, Как я могу сделать это в play-2.0-beta?

1 Ответ

11 голосов
/ 26 ноября 2011

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/ В этой папке эволюции должны храниться в виде файла 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

Как я уже говорил во вступлении, эволюции будут магически применяться при запуске приложения.

...