ちょっと前にハマったのでメモ。 Sequelでトランザクションを使う時は次のように transaction メソッドにブロックを渡します。 require 'sequel' require 'logger' db = Sequel.connect('mysql2://user:passwd@localhost/test') db.loggers = [Logger.new($stdout)] db.transaction do db[:test].insert(id: 123) end I, [2017-03-12T22:34:51.946849 #27932] INFO -- : (0.000119s) SET @@wait_timeout = 2147483 I, [2017-03-12T22:34:51.947047 #27932] INFO -- : (0.000133s) SET