表" play_evolutions"未找到

时间:2017-01-24 00:52:31

标签: scala playframework playframework-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 个答案:

答案 0 :(得分:1)

我已经检查了evolutions.default包中的1.sql,可能会有一些导致table not found的事情。

  

USE mydb;

通过此声明,您的工作模式"现在是 jdbc:h2:mem:play / mydb

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

解决方案很简单:

  

删除 USE mydb;

希望它有所帮助。