如何防止 AWS-SDK gem 尝试 运行 .load_yaml_config?
How can I keep AWS-SDK gem from trying to run .load_yaml_config?
我正在开发一个支持连接到许多不同数据库的旧代码库。我正在尝试创建一个新环境,以便我可以打开一个 rails console
连接到我需要用于我正在处理的应用程序部分的特定数据库。环境的名称是 nhl_development
.
到目前为止,我已经创建了一个新的配置文件并添加了相关的数据库配置:
# database.yml
generic: &generic
adapter: postgresql
encoding: utf8
pool: 30
dev_default: &dev_default
<<: *generic
host: <%= ENV['FOO']%>
username: <%= ENV['BAR']%>
password: <%= ENV['BAZ']%>
pool: 30
nhl_development:
<<: *dev_default
database: nhl
# config/environments/nhl_development.rb
Stats::Application.configure do
# copied entirely from config/environments/development.rb
end
当我从我的命令行 运行 rails c nhl_development
时,我从 AWS-SDK
gem:
得到以下错误
/usr/local/rvm/gems/ruby-2.2.1/gems/aws-sdk-v1-1.60.2/lib/aws/rails.rb:110:in `load_yaml_config': config/aws.yml is missing a section for `nhl_development` (RuntimeError)
...
...
from /home/me/app/config/environment.rb:5:in `<top (required)>'
我理解这条错误信息的基本要点。当我打开 config/aws.yml
时,没有 nhl_development
的配置集。但是,我不明白的是:
AWS::Rails.load_yaml_config
在哪里被调用?我认为我什至 want/need AWS 都无法在此环境中加载配置。堆栈跟踪返回到 config/environment.rb:5
但这只是初始化 Rails 应用程序的行。 config/initializers
中没有 AWS 的初始值设定项,我已经为 .load_yaml_config
在项目中查找但没有结果。我可以通过在 config/aws.yml
中为此环境添加一部分配置来让一切正常工作,但我现在不加载任何 AWS 配置。我怎样才能避免 AWS::Rails.load_yaml_config
在此环境中被调用,这样我就不必现在就去搞乱 config/aws.yml
?
这是 gem 本身做的。当它需要时(如果它在你的 Gemfile 中,哪些包会做)它加载 this file 注册一个初始化器(除其他外)调用 load_yaml_config
.
您可以通过关闭 Gemfile 中那个 gem (require: false
) 的自动请求来解决这个问题,并确保 gem 不会通过任何其他方式加载,直到在初始化程序有 运行 之后,但这听起来有点老套。我认为最简单的方法就是向该 yaml 文件添加一个条目
我正在开发一个支持连接到许多不同数据库的旧代码库。我正在尝试创建一个新环境,以便我可以打开一个 rails console
连接到我需要用于我正在处理的应用程序部分的特定数据库。环境的名称是 nhl_development
.
到目前为止,我已经创建了一个新的配置文件并添加了相关的数据库配置:
# database.yml
generic: &generic
adapter: postgresql
encoding: utf8
pool: 30
dev_default: &dev_default
<<: *generic
host: <%= ENV['FOO']%>
username: <%= ENV['BAR']%>
password: <%= ENV['BAZ']%>
pool: 30
nhl_development:
<<: *dev_default
database: nhl
# config/environments/nhl_development.rb
Stats::Application.configure do
# copied entirely from config/environments/development.rb
end
当我从我的命令行 运行 rails c nhl_development
时,我从 AWS-SDK
gem:
/usr/local/rvm/gems/ruby-2.2.1/gems/aws-sdk-v1-1.60.2/lib/aws/rails.rb:110:in `load_yaml_config': config/aws.yml is missing a section for `nhl_development` (RuntimeError)
...
...
from /home/me/app/config/environment.rb:5:in `<top (required)>'
我理解这条错误信息的基本要点。当我打开 config/aws.yml
时,没有 nhl_development
的配置集。但是,我不明白的是:
AWS::Rails.load_yaml_config
在哪里被调用?我认为我什至 want/need AWS 都无法在此环境中加载配置。堆栈跟踪返回到 config/environment.rb:5
但这只是初始化 Rails 应用程序的行。 config/initializers
中没有 AWS 的初始值设定项,我已经为 .load_yaml_config
在项目中查找但没有结果。我可以通过在 config/aws.yml
中为此环境添加一部分配置来让一切正常工作,但我现在不加载任何 AWS 配置。我怎样才能避免 AWS::Rails.load_yaml_config
在此环境中被调用,这样我就不必现在就去搞乱 config/aws.yml
?
这是 gem 本身做的。当它需要时(如果它在你的 Gemfile 中,哪些包会做)它加载 this file 注册一个初始化器(除其他外)调用 load_yaml_config
.
您可以通过关闭 Gemfile 中那个 gem (require: false
) 的自动请求来解决这个问题,并确保 gem 不会通过任何其他方式加载,直到在初始化程序有 运行 之后,但这听起来有点老套。我认为最简单的方法就是向该 yaml 文件添加一个条目