Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mehrfacher DB-Anschluss in Schienen

Versuchen Sie es

rake db:create:all

Und ja, es ist möglich, mehrere DB-Verbindungen in einer Rails-Anwendung zu haben.

Das habe ich einmal gemacht, ich habe zwei Klassen erstellt, die von ActiveRecord::Base erben und legen Sie die Verbindungen innerhalb dieser Klassen fest.

Dann habe ich alle meine Modelle in einer dieser Klassen geerbt, anstatt direkt ActiveRecord

Unten ist ein Beispiel:

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

Dann habe ich zwei Modelle für die Datenbanken test1 und 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

Dann vererbe ich meine Modelle laut Datenbank:

class School < Test1Base
  #code
end

class Student < Test2Base
  #code
end