【发布时间】:2018-11-09 09:55:03
【问题描述】:
我想从 slick 生成的模式中获取表列表。我看到那里生成了:
lazy val schema: profile.SchemaDescription = Table1.schema ++ Table2.schema ++ ...
但我看不到从中提取表格的方法。我可以使用schema.cereateStatements 并过滤create table,以提取表名,但这没有帮助。
【问题讨论】:
我想从 slick 生成的模式中获取表列表。我看到那里生成了:
lazy val schema: profile.SchemaDescription = Table1.schema ++ Table2.schema ++ ...
但我看不到从中提取表格的方法。我可以使用schema.cereateStatements 并过滤create table,以提取表名,但这没有帮助。
【问题讨论】:
您可以使用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"))
【讨论】: