Pour des raisons héritées, les tables de mon modèle sont stockées dans deux bases de données différentes sur le même serveur MySQL. Au début, je viens d'utiliser establish_connection
pour spécifier la deuxième base de données sur les modèles qui l'ont utilisé. Cependant, quand j'ai établi une connexion has_many :through
entre deux modèles dans différentes bases de données, il a explosé parce que MySQL ne peut pas JOIN sur deux serveurs différents. Ensuite, j'ai remarqué sur les interwebs que je pouvais utiliser set_table_name 'other_database.foos'
au lieu d'utiliser establish_connection
.Rails: utilisation de set_table_name pour joindre des bases de données différentes sur le même serveur mysql
Cela fonctionne principalement, mais table_exists?
renvoie toujours false même lorsque la table existe, et quelques-uns des plugins que j'utilise utilisent largement cette fonction.
Est-ce un bug dans table_exists?
, ou est-ce que j'utilise mal set_table_name
? Y a-t-il une autre façon de faire ce que j'essaie de faire?
Je vous remercie pour cette question, cela m'a aidé à résoudre le problème qui était à l'origine de mes cheveux. – zrl3dx