Slick是否支持每个查询动态更改架构?

时间:2014-02-28 22:22:01

标签: postgresql scala slick

我想使用postgresql来支持多租户环境,因此每个客户都有自己的架构。

当我进行sql查询时,我可以在使用Slick时动态更改架构吗?

若然,怎么样?

1 个答案:

答案 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