我想使用postgresql来支持多租户环境,因此每个客户都有自己的架构。
当我进行sql查询时,我可以在使用Slick时动态更改架构吗?
若然,怎么样?
答案 0 :(得分:5)
您可以参数化Table类和TableQuery工厂。
trait Schema{
def name: String
}
case object Customer1 extends Schema{
def name = "CUSTOMER_1"
}
case object Customer2 extends Schema{
def name = "CUSTOMER_2"
}
class MyTable(tag: Tag, schema: Option[String]) extends Table[...](tag, schema){
...
}
def myTable(schema: Schema) = new TableQuery( new MyTable(_,Some(schema.name)) )
myTable(Customer1).filter(_.id == 5).run