В настоящее время у меня запущено приложение Play 1.2.7 с существующей базой данных Postgresql. Я собираюсь перенести все мое приложение в Play 2.6.
Я прочитал большую часть документации Play Framework , но не могу найти решение своей проблемы.
Дело в том, что я только добавил свои существующие эволюции (1.sql -> 178.sql) в проект, без каких-либо моделей на данный момент.
ВАЖНЫЙ ФАКТ: Я только что обнаружил, что в сценариях эволюции есть «дыра». У нас есть скрипты от 1.sql до 107.sql и от 111.sql до 178.sql. Скрипты 108, 109 и 110 отсутствуют (историческая ошибка, я думаю, командой разработчиков).
Таблица play_evolutions базы данных соответствует этой дыре. Там нет строк с идентификатором 108, 109 или 110.
При запуске моего приложения hello world Play 2.6, Play хочет применить все эти спады, а затем применить только взлеты от 1 до 107. Это проблема, потому что она сотрет все мои данные, и кажется, что дыра останавливает взлеты до 107.sql.
Мой вопрос таков: проблема в дыре в скриптах или в том, что я еще не интегрировал модели? Как я могу сделать так, чтобы Play принял эту дыру или заполнил ее вручную.
Мои эволюции в conf / evolutions / default
Вот мои основные конфигурационные файлы:
1) conf / application.conf
## Secret key
play.crypto.secret = "changeme"
## Internationalisation
play.i18n {
langs = [ "fr" ]
}
## JDBC Datasource
db {
default.driver = org.postgresql.Driver
default.url = "postgres://user:password@localhost:5432/databasename"
default.jndiName=DefaultDS
}
ebean.default = ["models.*"]
# Number of database connections
# See https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
fixedConnectionPool = 9
# Set Hikari to fixed size
play.db {
prototype {
hikaricp.minimumIdle = ${fixedConnectionPool}
hikaricp.maximumPoolSize = ${fixedConnectionPool}
}
}
# Job queue sized to HikariCP connection pool
database.dispatcher {
executor = "thread-pool-executor"
throughput = 1
thread-pool-executor {
fixed-pool-size = ${fixedConnectionPool}
}
}
2) build.sbt
name := """my-app"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
scalaVersion := "2.12.4"
libraryDependencies += guice
libraryDependencies += "org.postgresql" % "postgresql" % "42.2.2"
libraryDependencies ++= Seq(evolutions, jdbc)
// Compile the project before generating Eclipse files, so that generated
.scala or .class files for views and routes are present
EclipseKeys.preTasks := Seq(compile in Compile, compile in Test)
PlayKeys.devSettings += "play.server.http.port" -> "80"
3) project / plugins.sbt
// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.15")
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.2.4")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "4.1.3")