The full error is
ActiveRecord::StatementInvalid: Mysql2::Error: SAVEPOINT active_record_1 does not exist: ROLLBACK TO SAVEPOINT active_record_1
I am writing a unit test and getting this error whenever I try to create a new ActiveRecord object -- but only after a certain point. This occurs after these lines:
ActiveRecord::Base.connection.execute "DROP TABLE IF EXISTS foo"
ActiveRecord::Base.connection.execute "CREATE TABLE foo (id INTEGER PRIMARY KEY)"
(The table 'foo' will be populated with data if my test succeeds)
Before the above lines, I can write something like
User.create(email => 'foo@bar.com')
and everything works fine. However, if I try writing the above line after my call to ActiveRecord::Base.connection.execute
, then I get this SAVEPOINT error
described above. I've also tried putting my execute statements within a transaction, but that didn't help. I'm stumped.
FYI - I'm using Rails 3.2.8