From: Ulag Sriramulu Date: 2009-04-22T02:29:25+09:00 Subject: Merb + Sequel + mysql transactions I don't seem to get the transaction to rollback the inserts performed. Below are my models class Group < Sequel::Model one_to_many :members, :class => :Member, :conditions => {:is_member => 1} one_to_many :non_members, :class => :Member, :conditions => {:is_member => 0} def insert db.transaction do self.save self.members.each do |member| member.insert end # force error to check the transaction rolling back raise(Sequel::Error::Rollback) self.non_members.each do |member| member.insert end end end end class Member < Sequel::Model def insert db.transaction do self.save end end end With this code, when I call group.insert I see the below sql in log. However, looking in the tables associated, I do see that the group record and one member record is inserted. Shouldn't it rollback all the inserts in case of errors. I tried model.save(:transaction => true) but that did not change this behavior either. Am I missing something? 2009-04-21T10:00:33.620-07:00|INFO BEGIN 2009-04-21T10:00:33.620-07:00|INFO INSERT INTO `groups` (`id`) VALUES ('group-1') 2009-04-21T10:00:33.622-07:00|INFO INSERT INTO `members` (`status`, `account_id`, `token`, `is_member`, `token_expires_at`, `type`, `group_id`) VALUES ('confirmed', '12', NULL, 1, NULL, 'admin', 'group-1') 2009-04-21T10:00:33.623-07:00|INFO ROLLBACK -- Posted via http://www.ruby-forum.com/.