我在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在何处缓存此旧的连接信息,以及如何删除/替换它?
答案 0 :(得分:2)
您可以使用ActiveRecord::Base.establish_connection(config)
更改数据库连接。如果设置了ActiveRecord::Base.configurations
(Rails自动将config / database.yml的内容加载到其中),则可以给定一个符号作为参数,表示配置哈希中的一个键,例如:development
或{{1 }}
检查完整的文档here