Je dois utiliser différentes connexions de base de données dans différents modèles Rails. Y a-t-il un moyen pas si malin de faire ça?
N'importe quel lien ou mot clé de recherche serait génial :)
Je dois utiliser différentes connexions de base de données dans différents modèles Rails. Y a-t-il un moyen pas si malin de faire ça?
N'importe quel lien ou mot clé de recherche serait génial :)
Ajouter de nouvelles sections à votre database.yml
par exemple
other_development:
adapter: mysql
database: otherdb_development
username: root
password:
host: localhost
other_production:
adapter: mysql
database: otherdb_production
username: root
password:
host: localhost
Ajouter une classe en lib/other_database.rb
class OtherDatabase < ActiveRecord::Base
establish_connection "other_#{RAILS_ENV}"
end
puis pour chaque modèle qui ne fait pas partie de la sous-classe de base de données par défaut de OtherDatabase
par exemple:
class MyModel < OtherDatabase
# my model code...
end
J'ai utilisé ce qui suit pour me connecter à 2 db dans la même application. Je les mets dans le dossier lib car tout y est chargé.
require 'active_record'
class OldDatabase < ActiveRecord::Base
self.abstract_class = true
establish_connection(
:adapter => 'mysql',
:database => 'weather',
:host => 'localhost',
:username => 'root',
:password => 'password'
)
end
class NewDatabase < ActiveRecord::Base
self.abstract_class = true
establish_connection(
:adapter => 'mysql',
:database => 'redmine',
:host => 'localhost',
:username => 'root',
:password => 'password'
)
end
class WeatherData < OldDatabase
end
class Board < NewDatabase
end
J'espère que cela pourra aider
Mikej a raison. Cependant, j’ai écrit un bijou qui rend le code du modèle à connecter un peu plus propre, jetez-y un œil .
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.