Проверить наличие таблицы в slick 3.0 - программирование

Проверить наличие таблицы в slick 3.0

Как проверить, существует ли таблица с slick 3.0?

В предыдущих версиях пятна существовал способ:

MTable.getTables.list()

Но это больше не компилируется.

Идея этого вопроса состоит в том, чтобы динамически создавать таблицу, когда она не существует, примерно так:

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

Ответ 1

С Slick 3.0 MTable.getTables есть DBAction, который должен запускаться через экземпляр Database:

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

Конечно, вы должны иметь дело с Future, возвращаемым db.run асинхронным способом (через map или для-понимания), а не блокировать его, как я сделал для примера.