J'écris un multi-tenancy gem for railscommutation adaptateurs dans les rails et sql générés
Mes tests d'établir des connexions en ce moment pour un adaptateur particulier, faire quelques tests, puis répétez l'opération pour les cartes suivantes db.
Mon problème est cependant que quand je l'appelle:
ActiveRecord::Base.establish_connection
avec un autre adaptateur, le SQL généré à partir, il est encore sous la forme de l'ancien adaptateur. Par exemple, j'exécute les tests mysql, puis j'essaie d'exécuter des tests postgresql. Je reçois une erreur:
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
Et il est évident ici que cela en utilisant la syntaxe de barre oblique inverse mysql, ce qui est valable dans postgresql. Donc, est-ce que quelqu'un sait comment établir correctement une connexion avec un autre adaptateur? J'ai essayé:
ActiveRecord::Base.connection.reconnect!
ActiveRecord::Base.clear_all_connections!
Aucun de ces a fixé mes tests. Toute aide est grandement appréciée.
oh bien ... il tourne c'est fixé dans Rails 3.2 de toute façon. Je suppose que je devrais prendre note de cela. Si j'ai la chance (ou l'inclination) je pourrais essayer ceci sur ma branche 3.0.x de rails, mais pas sûr quand je pourrais y arriver. – brad