0
我需要使用ActiveRecord連接到oracle數據庫後運行oracle腳本。
我知道存在初始化器,但這些只在應用程序的開始運行。我需要一個點來編寫一個代碼,在建立每個新的數據庫連接之後運行。
這需要初始化與使用相同遺留數據庫的其他應用程序共享的某些Oracle環境變量。如何使用rails連接到oracle後運行特定的腳本?
任何想法?
在此先感謝。
我需要使用ActiveRecord連接到oracle數據庫後運行oracle腳本。
我知道存在初始化器,但這些只在應用程序的開始運行。我需要一個點來編寫一個代碼,在建立每個新的數據庫連接之後運行。
這需要初始化與使用相同遺留數據庫的其他應用程序共享的某些Oracle環境變量。如何使用rails連接到oracle後運行特定的腳本?
任何想法?
在此先感謝。
我找到了解決辦法:
創建文件/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
調用。