【问题标题】:How to run specific script after connected to oracle using rails?使用rails连接到oracle后如何运行特定脚本?
【发布时间】:2011-06-08 15:59:34
【问题描述】:

使用 ActiveRecord 连接到 oracle 数据库后,我需要运行 oracle 脚本。
我知道存在初始化程序,但它们仅在应用程序启动时运行。我需要编写一个在每个新数据库连接建立后运行的代码。
这是初始化与使用相同遗留数据库的其他应用程序共享的一些 oracle 环境变量所必需的。

有什么想法吗?

提前致谢。

【问题讨论】:

    标签: ruby-on-rails oracle activerecord


    【解决方案1】:

    我找到了解决方案:
    创建文件 /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调用即可。

    【讨论】:

      猜你喜欢
      • 2015-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多