Как запустить конкретный скрипт после подключения к оракулу с помощью рельсов? - PullRequest
0 голосов
/ 13 января 2011

Мне нужно запустить скрипт oracle после подключения к базе данных oracle с помощью ActiveRecord.
Я знаю, что существуют инициализаторы, но они запускаются только при запуске приложения. Мне нужен момент, чтобы написать код, который запускается после каждого нового подключения к базе данных.
Это необходимо для инициализации некоторых переменных среды Oracle, используемых совместно с другими приложениями, использующими ту же устаревшую базу данных.

Есть идеи?

Заранее спасибо.

1 Ответ

0 голосов
/ 14 января 2011

Я нашел решение:
Создайте файл /config/initializers/oracle.rb и вставьте в него этот код:

ActiveRecord::ConnectionAdapters::ConnectionPool.class_eval do
  def new_connection_with_initialization
    result = new_connection_without_initialization
    result.execute('begin Base_Pck.ConfigSession; end;')
    result
  end
  alias_method_chain :new_connection, :initialization
end

alias_method_chain позволяет изменить метод (new_connection) без переопределения, но расширения.Тогда нам нужно только изменить скрипт на вызов result.execute.

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