Regenerate evolution scripts in play 2

2019-01-19 20:35发布

问题:

I am still developing first version of my application on play 2. How could I regenerate evolution scripts?

回答1:

Disclaimer: it will destroy your existing database and create new one!

The auto-evolution will auto-regenerate when:

  • you are running your app in the dev mode
  • in application.conf you have this line not commented : ebean.default="models.*"
  • there is only one file in your evolutions folder and it's 1.sql
  • it has this comment at the beginning:

# --- Created by Ebean DDL



回答2:

Using play 2.4, Slick 3.0.3 & postgres the *.sql files placed in the evolution folder were automatically generated in Heroku using the following setup:

in build.sbt:

  "com.typesafe.play" %% "play-slick" % "1.0.1",
  "com.typesafe.play" %% "play-slick-evolutions" % "1.0.1",
  "com.typesafe.slick" %% "slick" % "3.0.3",
  "org.postgresql" % "postgresql" % "9.4-1201-jdbc41",
  "org.slf4j" % "slf4j-nop" % "1.6.4",

in application.conf:

slick.dbs.default.driver ="slick.driver.PostgresDriver$"
slick.dbs.default.db.dataSourceClass = "slick.jdbc.DatabaseUrlDataSource"
slick.dbs.default.db.properties.driver = "org.postgresql.Driver"

and in Procfile:

-Dplay.evolutions.db.default.autoApply = true

Cheers