光滑生成的模式中的表列表

时间:2018-11-09 09:55:03

标签: scala slick

我想从光滑的生成模式中获取表列表。我看到那里生成了: lazy val schema: profile.SchemaDescription = Table1.schema ++ Table2.schema ++ ...

但是我没有办法从中提取表。我可以使用schema.cereateStatements并在create table上进行过滤,以提取表名,但这没有帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用MTable类阅读表

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"))