Как я работаю с двумя различными базами данных в направляющих с активными записями?

Ben корректен, отражая блок, Вы видите, что это - просто простое число, которое они приняли решение использовать.

43
задан Nathan Long 14 July 2011 в 16:02
поделиться

3 ответа

Микей прав. Однако я написал жемчужину, которая делает код модели для подключения немного чище, проверьте .

10
ответ дан 26 November 2019 в 22:26
поделиться

Добавьте новые разделы в ваш database.yml например

other_development:
  adapter: mysql
  database: otherdb_development
  username: root
  password:
  host: localhost

other_production:
  adapter: mysql
  database: otherdb_production
  username: root
  password:
  host: localhost

Добавьте класс в lib / other_database.rb

class OtherDatabase < ActiveRecord::Base
  establish_connection "other_#{RAILS_ENV}"
end

, а затем для каждой модели, которая не нет в подклассе базы данных по умолчанию из OtherDatabase , например:

class MyModel < OtherDatabase
   # my model code...
end
114
ответ дан 26 November 2019 в 22:26
поделиться

Я использовал следующее для подключения к 2 дБ в том же приложении. Я положил их в папку lib, так как все там загружено.

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

Надеюсь, что это поможет

13
ответ дан 26 November 2019 в 22:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: