La connexion à plusieurs bases de données en ruby on rails
J'ai un rubis sur des rails de travail sur l'application de l'amende et connecté à une base de données. Maintenant je veux me connecter à une autre base de données à partir de la même application. Le modèle de données peut être exactement le même. En fait, si je me connecte à la base de données différente de l'application fonctionne très bien. Cependant je veux me connecter à deux bases de données différentes. Est-il possible dans ruby on rails?
- Double Possible de : stackoverflow.com/questions/6122508/...
- imnithin.github.io/multiple-database.html
Vous devez vous connecter pour publier un commentaire.
Pour de multiples connexion de base de données, vous devez ajouter l'un des codes suivants dans la base de données.fichier yml. Ici, je donne l'exemple de raccordement de deux bases de données à partir d'une application rails
config/database.yml
Ici, j'ai utilisé deux bases de données pour le développement et l'environnement de production.
Maintenant nous avons besoin de connecter le modèle de bases de données. Lorsque vous exécutez votre application dans le développement et la production de la mode, tous les modèles seront mappées par le biais du développement et de la production db paramètres de celles mentionnées dans votre base de données.yml. Ainsi, pour certains modèle, nous avons besoin de vous connecter à une autre base de données.
Supposons que nous avons deux modèles de l'Utilisateur et de la Catégorie. La table des utilisateurs est en db1_dev et db1_prod, les catégories table dans db2_dev et db2_prod.
Catégorie modèle
De même, lorsque vous ajoutez la nouvelle migration pour la deuxième base de données, besoin d'ajouter code suivant.
Espère qu'il va travailler pour vous 🙂 .
establish_connection "#{Rails.env}_sec".to_sym
ActiveRecord::AdapterNotSpecified: database configuration does not specify adapter1.
Utilisation
establish_connection
pour passer à une autre base de données:Vous pouvez également passer un environnement préconfiguré à partir de la base de données.yml comme suit:
Vous pouvez aussi le mettre pour un modèle spécifique:
ActiveRecord::Base.configurations['other_env']
, sinon il ne fait pas charger la configuration.