Таблица "play_evolutions" не найдена
У меня есть базовая база данных разработки, настроенная так:
# Default database configuration using H2 database engine in an in-memory mode
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play;DB_CLOSE_DELAY=-1;MODE=MYSQL;DATABASE_TO_UPPER=FALSE"
Я добавил скрипт для создания таблиц из базы данных в conf/evolutions/default/1.sql
При запуске приложения с sbt run
и переходя на любую страницу, Play просит меня применить скрипт 1.sql
, После нажатия на кнопку я получаю следующую ошибку:
JdbcSQLException: Table "play_evolutions" not found; SQL statement: update play_evolutions set last_problem = ? where id = ? [42102-192]`en`
Разве игровой фреймворк уже не должен создавать это?
Версии:
//project/plugins.sbt
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.10")
//build.sbt
lazy val root =
(project in file("."))
.enablePlugins(PlayScala)
scalaVersion := "2.11.8"
libraryDependencies += jdbc
libraryDependencies += evolutions
1 ответ
Я проверил 1.sql в пакете evolutions.default, и может быть что-то, что вызывает table not found
вещь.
ИСПОЛЬЗОВАТЬ mydb;
С этим утверждением ваша "рабочая схема" теперь имеет вид jdbc: h2: mem: play / mydb.
Однако таблица play_evolutions создается только под корнем jdbc: h2: mem: play, что не имеет значения для jdbc: h2: mem: play / mydb с именем play_evolutions, что вызывает ОШИБКУ.
Решение легко:
удалить USE mydb;
Надеюсь, поможет.