我想从光滑的生成模式中获取表列表。我看到那里生成了:
lazy val schema: profile.SchemaDescription = Table1.schema ++ Table2.schema ++ ...
但是我没有办法从中提取表。我可以使用schema.cereateStatements
并在create table
上进行过滤,以提取表名,但这没有帮助。
答案 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"))