【发布时间】:2018-10-22 13:08:30
【问题描述】:
我尝试使用以下代码创建带有 slick 的数据库
我的部分构建依赖项
scalaVersion := "2.12.6"
libraryDependencies += "com.typesafe.play" %% "play-slick" % "3.0.0"
libraryDependencies += "mysql" % "mysql-connector-java" % "8.0.12"
_
val db = Database.forURL("jdbc:mysql://localhost", "user", "password")
val dbName = "database1"
Await.result(db.run(sqlu"CREATE DATABASE $dbName"), 1.second)
用户拥有 *.* 的所有权限
但是会抛出异常
java.util.NoSuchElementException: Invoker.first
at slick.jdbc.Invoker.first(Invoker.scala:34)
at slick.jdbc.Invoker.first$(Invoker.scala:30)
at slick.jdbc.StatementInvoker.first(StatementInvoker.scala:16)
at slick.jdbc.StreamingInvokerAction$HeadAction.run(StreamingInvokerAction.scala:52)
at slick.jdbc.StreamingInvokerAction$HeadAction.run(StreamingInvokerAction.scala:51)
at slick.basic.BasicBackend$DatabaseDef$$anon$2.liftedTree1$1(BasicBackend.scala:240)
at slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:240) java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:844)
请告诉我如何毫无例外地创建数据库。
我想为每个用户创建一个数据库,所以我不能在 application.conf 中写入数据库名称
【问题讨论】:
-
您使用哪个版本的 slick?
-
Slick 版本是 3.2.2。我通过 Play Slick 3.0.0 使用 slick
-
能否包含构建定义?