How to use Evolutions in Play Framework 2.0?

前端 未结 1 1421
臣服心动
臣服心动 2021-02-10 01:10

For play 1.x, we can use play evolutions:apply, How can I do it in play-2.0-beta?

1条回答
  •  误落风尘
    2021-02-10 01:57

    Evolution:apply is run automatically upon application start up. What is missing in Play 2.0-rc1 is a way to generate the evolutions scripts, and to manually apply them from the SBT console.

    But here is how to create them manually.

    Say you have the following definition in application.conf

    db.mydb.driver=org.h2.Driver
    db.mydb.url=jdbc:h2:mem:play
    

    Play2 will look for evolution in the following folder: application/db/evolutions/mydb/ In this folder, evolutions shall be stored as sql file, using the evolution step as the file name.

    For instance:

    application/db/evolutions/mydb/1.sql
    application/db/evolutions/mydb/2.sql
    application/db/evolutions/mydb/3.sql
    

    Now the sql itself has the following structure:

    # --- !Ups
    create table company (
      id                        bigint not null,
      name                      varchar(255),
      constraint pk_company primary key (id));
    # --- !Downs
    drop table if exists company;
    

    !Ups are used to upgrade the model to the next evolutions
    !Downs are used to revert the !Ups

    Like I said in the intro, evolutions will be magically applied upon application startup.

    0 讨论(0)
提交回复
热议问题