2011-03-15 4 views
0

J'ai 3 types d'organisations différents et 3 structures de bases de données différentes: une pour chaque type. Lorsque org1 s'enregistre, je crée une nouvelle instance de base de données pour org1, et quand org2 enregistre, je crée une nouvelle instance db, et même pour org3.Migration pour créer des structures de bases de données différentes dans Rails

Maintenant, comment puis-je exécuter des migrations pour trois structures db: différentes à partir de mon application peu après la création d'une nouvelle instance de base de données pour les organisations.

Je crée une instance de db de l'application par:

ActiveRecord::Base.connection.execute(sql) 

Comment puis-je faire cela? Y a-t-il une autre approche que je devrais utiliser?

Répondre

1

La commande que vous cherchez est establish_connection. Vous voudrez peut-être regarder les rails rdoc. Recherche de "Connexion à plusieurs bases de données dans différents modèles" dans http://api.rubyonrails.com/classes/ActiveRecord/Base.html.

Les connexions sont généralement créées via ActiveRecord :: Base.establish_connection et récupérées par ActiveRecord :: Base.connection. Toutes les classes héritant de ActiveRecord :: Base utiliseront cette connexion. Mais vous pouvez également définir une connexion spécifique à la classe. Par exemple, si Course est un ActiveRecord :: Base, mais réside dans une base de données différente, vous pouvez simplement dire Course.establish_connection et Course et toutes ses sous-classes utiliseront cette connexion à la place.

Questions connexes