检查 table 是否存在于 slick 3.0 中

Check table existence in slick 3.0

如何检查 slick 3.0 是否存在 table?

在以前的 slick 版本中有一种方法可以使用:

MTable.getTables.list()

但这不再编译。

这个问题背后的想法是在 table 不存在时动态创建它,就像这样:

if (Tables.contains("USERS") == false)
    Users.createTable()

Slick 3.0 MTable.getTables 是一个 DBAction,它是 运行 通过 Database 实例:

val tables = Await.result(db.run(MTable.getTables), 1.seconds).toList

当然,您可能应该以异步方式处理 db.run 返回的 Future(通过 mapfor-comprehension) 而不是像我在示例中那样阻止它。