Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Slick 3 session with rollback

I am using slick 3 and I am trying to perform some integration tests with some inserts, some code that uses the db and then I want to rollback all the insert or deletion at the end of the test itself but I cannot find any documentation about it.

Is it possible? How can I achieve it?

like image 587
Matroska Avatar asked Mar 25 '16 18:03

Matroska


1 Answers

You need to use . transactionally around the DBIOAction

eg

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)

For more see http://slick.typesafe.com/doc/3.1.1/dbio.html#transactions-and-pinned-sessions

like image 66
Stephen Avatar answered Oct 17 '22 22:10

Stephen