Mysql
 sql >> Base de données >  >> RDS >> Mysql

Connexion multiple DB dans les rails

Essayez

rake db:create:all

Et oui, il est possible d'avoir plusieurs connexions db dans une application Rails.

C'est ce que j'ai fait une fois, j'ai créé deux classes qui héritent de ActiveRecord::Base et définissez les connexions à l'intérieur de ces classes.

Ensuite, j'ai hérité de tous mes modèles dans l'une de ces classes au lieu de direct ActiveRecord

Ci-dessous un exemple :

database.yml file

#app uses two database
#1 - test1
#2 - test2
test1:
  adapter: mysql
  encoding: utf8
  database: test1
  username: root 
  password: xxx
  host: localhost

test2:
  adapter: mysql
  encoding: utf8
  database: test2
  username: root
  password: xxx
  host: localhost

Ensuite, j'ai deux modèles pour les bases de données test1 et test2 :

class Test1Base < ActiveRecord::Base
    self.abstract_class = true
    establish_connection("test1")
end

class Test2Base < ActiveRecord::Base
  # No corresponding table in the DB.
  self.abstract_class = true
  establish_connection("test2")
end

Ensuite, j'hérite de mes modèles selon la base de données :

class School < Test1Base
  #code
end

class Student < Test2Base
  #code
end