【问题标题】:Is it possible to use Slick 3 for accessing different schemas within the same Database?是否可以使用 Slick 3 访问同一数据库中的不同模式?
【发布时间】:2022-03-30 08:22:27
【问题描述】:

对于我需要创建的多租户应用程序,我想评估 Slick 在创建针对 Postgres 不同模式的查询时是否方便(不要与模式表混淆)。

我很难找到如何配置 TableQuery 以动态使用用户提供的架构。 TableQuery[Users].resul 应该根据我查询租户 A 或租户 B 返回不同的数据集。

当前的 Slick 版本是否可行?

【问题讨论】:

    标签: multi-tenant slick slick-3.0


    【解决方案1】:

    TableQuery 本身不需要配置,因为它的方法只返回查询和操作。操作由DatabaseDef 实例运行,这就是需要配置以访问不同模式/数据库/等的内容。 Slick 官方文档describes 一种创建DatabaseDef 实例的简单方法,默认使用Typesage Config 库:

    val db = Database.forConfig("mydb")
    

    "mydb" 指定 Typesafe Config 正在查看的属性文件中的键。您也可以通过编程方式创建和操作Config 实例,并从中创建db 实例。我怀疑您将不得不按照创建新的Config 实例的方式做一些事情(有方便的withValue() 方法来复制Config 并替换指定键处的配置值)并使用它来创建一个为您有兴趣查询的每个新架构创建新的 db 实例。

    【讨论】:

      猜你喜欢
      • 2012-08-19
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多