2011-01-13 41 views
0

我需要使用ActiveRecord連接到oracle數據庫後運行oracle腳本。
我知道存在初始化器,但這些只在應用程序的開始運行。我需要一個點來編寫一個代碼,在建立每個新的數據庫連接之後運行。
這需要初始化與使用相同遺留數據庫的其他應用程序共享的某些Oracle環境變量。如何使用rails連接到oracle後運行特定的腳本?

任何想法?

在此先感謝。

回答

0

我找到了解決辦法:
創建文件/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調用。

相關問題