3

我有一个这样配置的基本开发数据库:

# 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
4

1 回答 1

1

我已经检查了 evolutions.default 包中的 1.sql ,可能有什么原因导致了这个table not found问题。

使用我的数据库;

使用此语句,您的“工作模式”现在是jdbc:h2:mem:play/mydb

但是play_evolutions表是在根jdbc:h2:mem:play下创建的,这意味着 jdbc:h2:mem:play/mydb下没有任何内容称为play_evolutions,这会导致错误。

解决方案很简单:

删除使用 mydb;

希望能帮助到你。

于 2017-01-25T05:49:16.897 回答