首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >支持回滚的Slick 3会话

支持回滚的Slick 3会话
EN

Stack Overflow用户
提问于 2016-03-26 02:09:37
回答 2查看 1.8K关注 0票数 9

我正在使用slick 3,我正在尝试执行一些插入的集成测试,一些使用数据库的代码,然后我想在测试结束时回滚所有的插入或删除,但我找不到任何有关它的文档。

有可能吗?我怎样才能做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2016-03-30 11:43:07

您需要在DBIOAction中使用. transactionally

例如

代码语言:javascript
复制
val a = (for {
  ns <- coffees.filter(_.name.startsWith("ESPRESSO")).map(_.name).result
  _ <- DBIO.seq(ns.map(n => coffees.filter(_.name === n).delete): _*)
} yield ()).transactionally

val f: Future[Unit] = db.run(a)

有关更多信息,请参阅http://slick.typesafe.com/doc/3.1.1/dbio.html#transactions-and-pinned-sessions

票数 2
EN

Stack Overflow用户

发布于 2016-03-26 17:49:45

我可以建议在测试之前和之后使用BeforeAndAfter scala-test特征删除并创建表模式,下面的代码如下:

代码语言:javascript
复制
def createTable(): Future[Unit] = {
        db.run(DBIO.seq(
          MTable.getTables.map(tables =>
            if (!tables.exists(_.name.name == table.baseTableRow.tableName))
              db.run(table.schema.create)
          )
        ))
}

def dropTable(): Future[Unit] = db.run(table.schema.drop)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36225446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档