如何在测试环境中阅读Rails开发db?

时间:2018-05-20 20:28:51

标签: ruby-on-rails

我的应用程序连接到外部的只读数据集,该数据集可通过频繁旋转的键访问。

也就是说,每隔几个小时,您当前的密钥就会进入状态,然后您需要使用刷新密钥来获取新的访问密钥。使用刷新密钥时,您将获得一个新的刷新密钥和一个新的访问密钥。

问题出在测试中,我必须抓住这些键才能运行我的一些测试。现在我正在使用剪切和粘贴存储密钥的development.db中的当前密钥,每隔几个小时将其粘贴到application.yml中,但这当然是单调乏味的。

我想在我开始测试会话时阅读我的​​开发数据库以获取当前的密钥集。

怎么做? (Rails 5)

1 个答案:

答案 0 :(得分:1)

您可以创建第二个连接配置,并在模型类中手动创建连接。

# database.yaml
test_external:
...same as development

# production_external.yml
...your production keys storage


class MyModel < ActiveRecord::Base
 establish_connection "#{Rails.env}_external"
end

或者,如果您不想更改模型,可以直接访问连接:

# rails_helper.rb
ActiveRecord::Base.establish_connection('development')
@@keys = ActiveRecord.Base.connection.execute('query to retrieve the keys')

# set connection again to test to not break the tests.
ActiveRecord::Base.connection.establish_connection(Rails.env)