Играть Slick (2.6.x) с H2: стол не найден - PullRequest
0 голосов
/ 09 сентября 2018

Чтобы воспроизвести ошибку, найдите play-slick-todos .

Я следую шаблону в play-slick-sample , чтобы реализовать конечную точку API списка задач, используя Playframework и Slick. Чтобы упростить проблему, я использую только конечную точку index.

После завершения sbt run посещение localhost:9000 достигает конечной точки index в Application. Тем не менее, он выдает ниже ошибки:

[error] application -

! @797hp92i6 - Internal server error, for (GET) [/] ->

play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[JdbcSQLException: Table "todo" not found; SQL statement:
select "id", "content" from "todo" [42102-197]]]
    at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:251)
    at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:178)
    at play.core.server.AkkaHttpServer$$anonfun$1.applyOrElse(AkkaHttpServer.scala:363)
    at play.core.server.AkkaHttpServer$$anonfun$1.applyOrElse(AkkaHttpServer.scala:361)
    at scala.concurrent.Future.$anonfun$recoverWith$1(Future.scala:413)
    at scala.concurrent.impl.Promise.$anonfun$transformWith$1(Promise.scala:37)
    at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
    at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)
    at akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:91)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
Caused by: org.h2.jdbc.JdbcSQLException: Table "todo" not found; SQL statement:
select "id", "content" from "todo" [42102-197]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
    at org.h2.message.DbException.get(DbException.java:179)
    at org.h2.message.DbException.get(DbException.java:155)
    at org.h2.command.Parser.readTableOrView(Parser.java:5920)
    at org.h2.command.Parser.readTableFilter(Parser.java:1430)
    at org.h2.command.Parser.parseSelectSimpleFromPart(Parser.java:2138)
    at org.h2.command.Parser.parseSelectSimple(Parser.java:2287)
    at org.h2.command.Parser.parseSelectSub(Parser.java:2133)
    at org.h2.command.Parser.parseSelectUnion(Parser.java:1946)
    at org.h2.command.Parser.parseSelect(Parser.java:1919)

Кажется, что Слик не создает для меня таблицу "todo".

Я знаю, как создать таблицу: для задач , Await.result(db.run(todos.schema.create)) выполняет свою работу. Но я не знаю, где их разместить, и я считаю, что это должен был сделать Slick and Play.

Любая помощь приветствуется. Спасибо!

versions:
play - 2.6.18
scala - 2.12.6
h2 - 1.4.197
play-slick - 3.0.1
play-slick-evolutions - 3.0.1

1 Ответ

0 голосов
/ 09 сентября 2018

Разница отвечает на вопрос. Я должен добавить скрипт развития.

...