Play 2,6 эволюции БД изменения не применяются - PullRequest
0 голосов
/ 27 июня 2018

Мой проект был недавно обновлен с Play 2.5 до 2.6.13. Я добавил новый скрипт 16.sql, но изменения не были применены в таблице play_evolutions

Согласно документации 2.6 , EvolutionsComponents необходимо вводить, если вы используете DI времени компиляции. Но Guice - это DI времени выполнения, поэтому мне не нужно вводить какие-либо компоненты.

Я включил эволюцию в build.sbt

libraryDependencies ++= Seq(evolutions, jdbc)

В приложении .conf

play.evolutions.enabled=true
play.evolutions.autoApply=true

Чего не хватает моему проекту? Любые примеры git приветствуются

1 Ответ

0 голосов
/ 24 октября 2018

Я решил это, следуя документации с момента обновления до Play 2.6

Вот мой код

import play.api.ApplicationLoader.Context
import play.api.{Application, ApplicationLoader, BuiltInComponentsFromContext}
import play.api.db.{DBComponents, HikariCPComponents}
import play.api.db.evolutions.EvolutionsComponents
import play.api.routing.Router
import play.filters.HttpFiltersComponents
import router.Routes

class MyApplicationLoader extends ApplicationLoader {

  def load(context: ApplicationLoader.Context): Application = {
    new AppComponents(context).application
  }
}

class AppComponents(context: Context)
    extends BuiltInComponentsFromContext(context)
    with DBComponents
    with EvolutionsComponents
    with HikariCPComponents
    with HttpFiltersComponents {
  // this will actually run the database migrations on startup
  applicationEvolutions

  //  val prefix: String = "/"
  lazy val router = Router.empty
  //  lazy val router: Router = bind(classOf[Routes]).to(classOf[Routes])

}

И в conf / application.conf добавьте эту строку

play.application.loader=MyApplicationLoader
...