Полная ошибка
ActiveRecord::StatementInvalid: Mysql2::Error: SAVEPOINT active_record_1 does not exist: ROLLBACK TO SAVEPOINT active_record_1
Я пишу unit test и получаю эту ошибку всякий раз, когда пытаюсь создать новый объект ActiveRecord, но только после определенного момента. Это происходит после следующих строк:
ActiveRecord::Base.connection.execute "DROP TABLE IF EXISTS foo"
ActiveRecord::Base.connection.execute "CREATE TABLE foo (id INTEGER PRIMARY KEY)"
(Таблица "foo" будет заполнена данными, если мой тест завершится успешно)
Перед вышеприведенными строками я могу написать что-то вроде
User.create(email => '[email protected]')
и все работает отлично. Однако, если я попытаюсь написать вышеприведенную строку после моего вызова ActiveRecord:: Base.connection.execute, я получу эту ошибку SAVEPOINT, описанную выше. Я также попытался помещать свои операторы выполнения в транзакцию, но это не помогло. Я в тупике.
FYI - я использую Rails 3.2.8