Postgresql 优化数据库操作Slick 3

Postgresql 优化数据库操作Slick 3,postgresql,scala,slick,Postgresql,Scala,Slick,我用Slick创建了一个数据库。我正在尝试创建表的模式,选择一些信息等等。以下是我创建模式的代码: val createUserTable = UserTable.table.schema.create val createTaskTable = TaskTable.table.schema.create Await.result(db.run(DBIO.seq(Queries.createUserTable, Queries.createTaskTable)), 2 seconds) 这段代

我用Slick创建了一个数据库。我正在尝试创建表的模式,选择一些信息等等。以下是我创建模式的代码:

val createUserTable = UserTable.table.schema.create
val createTaskTable = TaskTable.table.schema.create
Await.result(db.run(DBIO.seq(Queries.createUserTable, Queries.createTaskTable)), 2 seconds)
这段代码工作得很好,但我不想在每个查询中使用wait.result。我所寻找的是至少按目的(创建、选择等)批量执行它们。我可以创建此方法来传递不同的操作:

def executeAction[T](action: DBIO[T]) =
    Await.result(db.run(action), 2 seconds)
所以我很好奇,我该如何修改它来传递一些包含一系列查询的数据结构?例如,
List(createUserTable、createTaskTable)


谢谢你的帮助

避免每次DBIO操作都等待的两种方法

  • 创建DBIO操作列表,并使用
    DBIO.seq
    收集这些操作并执行

  • 用于将所有DBIO操作组合成一个DBIO操作

  • 这将帮助您多次使用wait来等待中间DBIO操作的结果


    在这两种情况下,您必须使用
    Await.result
    至少等待一次主线程中的结果(即停止主线程退出)。

    有两种方法可以避免每次DBIO操作都等待

  • 创建DBIO操作列表,并使用
    DBIO.seq
    收集这些操作并执行

  • 用于将所有DBIO操作组合成一个DBIO操作

  • 这将帮助您多次使用wait来等待中间DBIO操作的结果


    在这两种情况下,您必须使用
    wait.result
    至少等待一次主线程中的结果(即停止主线程退出)。

    所以我的行
    wait.result(db.run(DBIO.seq(querys.createUserTable,querys.createTaskTable)),2秒)
    实际上可以吗?我的意思是,我可以在这里添加更多的动作。是这样吗?那么我的行
    Await.result(db.run(DBIO.seq(querys.createUserTable,querys.createTaskTable)),2秒)
    实际上还可以吗?我的意思是,我可以在这里添加更多的动作。是吗?请添加您正在使用的slick版本。slick 2和slick 3不同,洛蒂编辑了这个问题。我正在使用Slick 3请添加您正在使用的Slick版本。slick 2和slick 3不同,洛蒂编辑了这个问题。我用的是滑头3