如何为 PostgreSQL 配置 Slick 3.1.1?它似乎忽略了我的配置参数,而 运行 普通 sql 查询
How to configure Slick 3.1.1 for PostgreSQL? It seems to ignore my config parameters while running plain sql queries
我有两天时间尝试使用 Slick 3.1.1 运行 一个简单的 SQL 查询,我遵循了 Getting Started and Database Configuration 指南。
问题是虽然代码编译正确,但它忽略了我的数据库参数(配置中的参数是错误的),它将此打印到 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"
)
此外,我有 Scala“2.11.8”。
问题不在于配置,而在于我期望这些东西如何工作。
我预计在使用错误的凭据和这一行配置数据库时出现异常:
val result = db.run( sql"SELECT NOW()".as[String] )
它不会抛出任何期望,因为 db.run return 是一个 Future,程序在此之后完成并且永远不会执行查询,使用 Await.result 让 Future 完成作业将抛出错误配置或 return 正确值的异常,这里是一个示例代码:
import scala.concurrent.Await
import scala.concurrent.duration.Duration
println( Await.result(result, Duration.Inf) )
我有两天时间尝试使用 Slick 3.1.1 运行 一个简单的 SQL 查询,我遵循了 Getting Started and Database Configuration 指南。
问题是虽然代码编译正确,但它忽略了我的数据库参数(配置中的参数是错误的),它将此打印到 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"
)
此外,我有 Scala“2.11.8”。
问题不在于配置,而在于我期望这些东西如何工作。
我预计在使用错误的凭据和这一行配置数据库时出现异常:
val result = db.run( sql"SELECT NOW()".as[String] )
它不会抛出任何期望,因为 db.run return 是一个 Future,程序在此之后完成并且永远不会执行查询,使用 Await.result 让 Future 完成作业将抛出错误配置或 return 正确值的异常,这里是一个示例代码:
import scala.concurrent.Await
import scala.concurrent.duration.Duration
println( Await.result(result, Duration.Inf) )