所以我有一个使用多个MySQL和PostgreSQL数据库的Scala / Play应用程序(在同一台服务器上),但是我遇到了PostgreSQL的问题。
这是配置:
db.postgres.driver=org.postgresql.Driver
db.postgres.url="jdbc:postgresql://localhost:5432/"
db.postgres.user=root
db.postgres.password=root
db.mysql.driver="com.mysql.jdbc.Driver"
db.mysql.url="jdbc:mysql://localhost"
db.mysql.user=root
db.mysql.pass=root
这个简单的方法适用于MySQL:
def test = DB("mysql").withDynSession {
val rez = sql"""select * from dbName.test""".as[TestRow].list
println(rez)
}
但与Postgres的方法完全相同
def test = DB("postgres").withDynSession {
val rez = sql"""select * from dbName.test""".as[TestRow].list
println(rez)
}
抛出错误:
org.postgresql.util.PSQLException: ERROR: relation "dbName.test" does not exist
为什么这些方法是相同的,但是MySQL示例有效,而PostgreSQL没有?
我的筹码:
Postgresql JDBC驱动程序版本为9.3-1101-jdbc41
答案 0 :(得分:2)
我遇到了同样的问题。
我正在使用Slick 2.0,提升嵌入和PostgreSQL 9.3。
您必须在定义表时设置架构:
class Coffees(tag:Tag) 扩展Table [(String,Int,Double,Int,Int)](tag,Some(“MYSCHEMA”),“COFFEES”){
答案 1 :(得分:0)
这可能是区分大小写的问题。尝试引用名称并将模式添加到限定名称:sql"""select * from "dbName"."theSchema"."test""""
这有用吗?