我有一个这样配置的基本开发数据库:
# 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`
play 框架不应该已经创建了吗?
版本:
//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
最佳答案
我检查了 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,这导致了错误。
解决方法很简单:
remove USE mydb;
希望对您有所帮助。
关于scala - 找不到表 "play_evolutions",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41818273/