在重新启动RoR之前,动态数据库连接连接不会更新

时间:2015-09-02 07:38:12

标签: ruby-on-rails ruby activerecord

establish_connection使用的变量正在发生变化,但由于某种原因,模型在重新启动Rails之前不会切换到更新的配置。如何让模型成功动态连接到其他数据库?

class Submission < ActiveRecord::Base
 establish_connection(ExtDBInfo.current_ext_db)
end

1 个答案:

答案 0 :(得分:2)

您可以使用此代码段动态切换到新连接:

connection_info = Submission.configurations[RAILS_ENV].clone
connection_info['database'] = 'new_database'
Submission.establish_connection(connection_info)

在第一行,我们获得了连接的现有设置(clone是必不可少的)。然后我们将设置更新为所需(在这种情况下只更新database),然后重新建立连接。

如果您需要返回默认配置,可以使用:

Submission.establish_connection(RAILS_ENV)

查看更多信息http://apidock.com/rails/ActiveRecord/Base/establish_connection/class