检查表格存在于光滑3.0

Ben*_* B. 12 database scala slick-3.0

如何检查表格是否存在光滑的3.0?

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

MTable.getTables.list()
Run Code Online (Sandbox Code Playgroud)

但这不再编译了.

这个问题背后的想法是在它不存在时动态创建一个表,非常像这样:

if (Tables.contains("USERS") == false)
    Users.createTable()
Run Code Online (Sandbox Code Playgroud)

Arn*_*sen 15

使用Slick 3.0 MTable.getTables是一个DBAction通过Database实例运行的:

val tables = Await.result(db.run(MTable.getTables), 1.seconds).toList
Run Code Online (Sandbox Code Playgroud)

当然,您应该以异步方式处理Future返回的db.run(通过map解析),而不是像我为示例那样阻塞它.

  • `MTable.getTables` 的返回值是一个流,它是 `Seq` 的实现,因此你可以通过调用函数 `toList` 来获取列表,因为 `Seq` 的每个实现都需要实现一个 `toList` 函数 (2认同)