Я пишу мультитенантный гем для рельсов
Мои тесты сейчас устанавливают соединения для определенного адаптера, запускают некоторые тесты, затем повторяют для последующих адаптеров БД.
Моя проблема, однако, заключается в том, что когда я звоню:
ActiveRecord::Base.establish_connection
с другим адаптером, SQL-файл, сгенерированный из него, все еще находится в форме старого адаптера.Например, я запускаю тесты mysql, затем пытаюсь запустить тесты postgresql.Я получаю сообщение об ошибке:
Failure/Error: subject.create(database1)
ActiveRecord::StatementInvalid:
PGError: ERROR: syntax error at or near "."
LINE 1: SELECT `users`.* FROM `users` WHERE `users`.`name` = 'Some ...
^
: SELECT `users`.* FROM `users` WHERE `users`.`name` = 'Some User 0' LIMIT 1
И здесь очевидно, что он использует синтаксис обратной косой черты mysql, который недопустим в postgresql.
Итак ... кто-нибудь знает, как установитьсоединение с другим адаптером правильно?Я пробовал:
ActiveRecord::Base.connection.reconnect!
ActiveRecord::Base.clear_all_connections!
Ни один из этих тестов не помог мне.Любая помощь с благодарностью.