Как я могу подключиться к другой БД для определенного метода в классе? - PullRequest
4 голосов
/ 03 мая 2011

Из-за системного администратора мне нужно сделать запрос в нашем приложении по отношению к подчиненной базе данных и к рабочей базе данных.

Я могу использовать Estab_connection на уровне класса, но не хочу нарушать другие методы класса.Поэтому интересно, как бы я создал соединение с БД для этого конкретного метода класса без указания всех моих методов на ведомую БД?

Как вы это сделаете в Perl или Php.

Вот пример: http://pastie.org/private/0k8xqssjrib94sd8hhjfq

Любая помощь приветствуется.

Лучший, Адам О

Ответы [ 3 ]

4 голосов
/ 03 мая 2011

Это должно помочь вам https://github.com/kovyrin/db-charmer

1 голос
/ 03 мая 2011

Я бы добавил метод к вашей модели:

class Model
  def self.on_slave
    .. connect to slave with establish_connection ..
    yield
    .. connect to production with establish_connection
  end

Для каждого метода, для которого требуется подчиненное устройство, вы можете выполнить:

def self.this_operates_on_the_slave
  on_slave do
    .. operate
  end
end
0 голосов
/ 05 мая 2011

спасибо за решения.Я закончил тем, что пошел с библиотекой Сиквела.По сути, я создал инициализатор, класс 'slavedb_connect', и использую это соединение для взаимодействия с ведомой базой данных, когда это необходимо.

Я сделал много попыток и очень близко подошел.Тем не менее, Sequel - это изящное решение, которое в большей степени следует «Rails / Ruby Way».

Спасибо за помощь / поддержку.Очень нравится пользоваться этим сайтом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...