来自灵活生成的模式的表列表

List of tables from slick generated schema

我想从 slick 生成的架构中获取 table 的列表。我看到有生成: lazy val schema: profile.SchemaDescription = Table1.schema ++ Table2.schema ++ ...

但我看不出有什么办法可以从中提取 tables。我可以使用 schema.cereateStatements 并过滤 create table,以提取 table 名称,但这没有帮助。

您可以使用 MTable class

阅读表格
import scala.concurrent.ExecutionContext.Implicits.global
import slick.jdbc.meta.MTable 

//Tables from public schema

    db.run(MTable.getTables(Some(""),Some("public"),Some(""),Some(Seq("TABLE")))).
       onComplete {
           case Success(tables) => println(tables.map(_.name).mkString(" - "))
           case Failure(f) => println(f)
       }

结果是:

MQName(public.table1) - MQName(public.table2) 

如果你也想要索引,请将 "INDEX" 添加到 Seq

Some(Seq("TABLE","INDEX"))