sql >> Databasteknik >  >> RDS >> Mysql

Multipel DB-anslutning i skenor

Prova

rake db:create:all

Och ja, det är möjligt att ha flera db-anslutningar i en Rails-applikation.

Det här är vad jag gjorde en gång, jag har skapat två klasser som ärver från ActiveRecord::Base och ställ in anslutningarna i dessa klasser.

Sedan ärvde jag alla mina modeller i en av dessa klasser istället för direkt ActiveRecord

Nedan är ett exempel:

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

Sedan har jag två modeller för både test1 och test2 databaser:

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

Sedan ärver jag mina modeller enligt databas:

class School < Test1Base
  #code
end

class Student < Test2Base
  #code
end


  1. Unik begränsning som kontrollerar två kolumner i MySQL

  2. Vilka är sqlite-motsvarigheterna till MySQL:s INTERVAL och UTC_TIMESTAMP?

  3. Få MySQL-frågeresultat som deras ursprungliga datatyp?

  4. Skriv en MySQL-fråga för att få önskat resultat