快速切换Rails数据库连接

时间:2018-09-20 17:13:48

标签: ruby-on-rails ruby-on-rails-5 rails-activerecord

我在Rails 5应用程序中有一个开发数据库,​​但是在我们的网络中,我们还保留了一个填充的数据库以进行测试。有时,我必须一直在这些数据库之间切换,如果我能在Rails运行时立即进行操作,那将节省很多时间。

我尝试删除所有活动的连接,然后修补配置,但不知何故它一直连接到我的原始数据库。

这是我尝试过的:

Product.count
  => 0 # is dev db

ActiveRecord::Base.connection_handler.remove_connection('development')
ActiveRecord::Base.connection_handler.remove_connection('primary')
ActiveRecord::Base.configurations['development'] = test_config_params

Product.count

=> 0 # Is still dev db

Rails在何处缓存此旧的连接信息,以及如何删除/替换它?

1 个答案:

答案 0 :(得分:2)

您可以使用ActiveRecord::Base.establish_connection(config)更改数据库连接。如果设置了ActiveRecord::Base.configurations(Rails自动将config / database.yml的内容加载到其中),则可以给定一个符号作为参数,表示配置哈希中的一个键,例如:development或{{1 }}

检查完整的文档here