如何配置油滑3.1.1 PostgreSQL的? 它似乎忽略我的配置参数,同时运行普通的SQL查

2019-09-28 06:05发布

我这两天试图运行使用油滑3.1.1普通SQL查询,我跟着入门和数据库配置指南。

问题是,当代码编译正确,它忽略我的数据库参数(在配置的那些是错的),它打印此到stdout(虽然它应该抛出一个异常):

HikariCP pool database is starting.
List()

这里是我的测试代码:

import slick.driver.PostgresDriver.api._
import scala.concurrent.ExecutionContext.Implicits.global

object app extends App {
  doit
  def doit {
    val db = Database.forConfig("mydb")
    val result = db.run( sql"SELECT NOW()".as[String] )
    println(result)
  }
}

这里是“application.conf”

mydb = {
  dataSourceClass = "org.postgresql.ds.PGSimpleDataSource"
  properties = {
    databaseName = "mydb"
    user = "myuser"
    password = "secret"
  }
  numThreads = 10
}

这里是“build.sbt”

libraryDependencies ++= Seq(
  "org.postgresql" % "postgresql" % "9.4.1208",
  "mysql" % "mysql-connector-java" % "5.1.35",
  "com.typesafe.slick" %% "slick" % "3.1.1",
  "com.typesafe.slick" %% "slick-hikaricp" % "3.1.1",
  "com.zaxxer" % "HikariCP" % "2.4.7"
)

另外,我有斯卡拉“2.11.8”。

Answer 1:

这个问题是不是与配置,但我是如何期待的事情工作。

我期待一个例外,同时配置有错误的证书,这行的数据库:

val result = db.run( sql"SELECT NOW()".as[String] )

因为db.run返回一个未来它不抛出任何厚望,程序紧接在该完成,并且永远不会执行查询,使用Await.result让未来完成任务将抛出错误配置的异常,或者返回正确的值,这里是一个示例代码:

import scala.concurrent.Await
import scala.concurrent.duration.Duration

println( Await.result(result, Duration.Inf) )


文章来源: How to configure Slick 3.1.1 for PostgreSQL? It seems to ignore my config parameters while running plain sql queries