Ruby On Rails in UA Icon_home Главная Add to bookmarks Translate translate Profile Войти
Регистрация Форум Блоги Пользователи Ресурсы Список джемов      Поиск   

Затегированы темы

Подключение рейлс приложения к нескольким базам данных

Date2008-08-28 UserRuslan Voloshin Commentкоментарии 2

И так начнем с добавления еще одного конекшина в конфиг базы данных

database.yml

development:
  adapter: postgresql
  database: application_development

marketing_db_development:
  adapter: postgresql
  database: marketing_db_development
  username: postgres

 


Теперь  делаем модель для виртуального адаптера  от которой потом будут наследоваться все таблицы которые будут браться из другой базы

class MarketingDb < ActiveRecord::Base
  self.abstract_class = true
  establish_connection("marketing_db_#{RAILS_ENV}".to_sym)
end

А дальше для проверки запускаем консоль

[wr@bublik trunk]$ script/console
Loading development environment (Rails 2.1.0)
>> ManagementDb.connection.execute("select * from users")
=> #<Mysql::Result>


как видно запросы обрабатываются и отсылаются к другой базе, далее попытаюсь показать наглядней

данные из основной базы

>> User.first
=> #<User id: 267300, account_id: 208552, sasp_id: 232123370, address_id: 35917, title

Попытаемся сделать запрос к дополнительной базе

 ManagementDb.connection.select_all("select * from users")
=> [{"yahoo_handle"=>"wert", "updated_at"=>"2008-08-27 05:47:05", "raiting"=

Запрос выполнился но рельзультатов не видно для этого создадим новый клас который будет конектиться к дополнительной базе и искать пользователей в ней

>> class MailUser < ManagementDb
>> set_table_name "users"
>> end
=> nil
>> MailUser.first
=> #<MailUser id: 1, login: "admin", email: "rebisall@gmail.com", first_name: "Ruslan",

и вот результат положительный мы нашли пользователя в другой бузе данных

Ждите в следующем посте описание миграций при друх коннектах

Rss
Ключевые слова:
Гости: 218 Онлайн: 0
Rambler's Top100
О проекте по всем вопросам обращайтесь на support
Rubyclub.com.ua Copyright © 2007 - 2008