【发布时间】:2013-04-08 13:18:33
【问题描述】:
这是我的 mongoid.yml
development:
sessions:
default:
database: myapp
# Provides the hosts the default session can connect to. Must be an array
# of host:port pairs. (required)
hosts:
- localhost:27017
options:
test:
sessions:
default:
database: myapp
hosts:
- localhost:27017
options:
consistency: :strong
# In the test environment we lower the retries and retry interval to
# low amounts for fast failures.
max_retries: 1
retry_interval: 0
production:
sessions:
default:
database: remote_database
username: remote_user
password: 111111
hosts:
- remotedomain.com:27017
options:
safe: true
options:
identity_map_enabled: true
我的 mongodb 数据库在其他不同的服务器上。问题是当我运行这个命令时:
bundle exec rake environment tire:import CLASS=Cv FORCE=true
我的 mongodb 服务器位于不同的服务器上,而我的 rails 应用程序具有不同的 IP 和不同的子域。
所以,如果我运行此命令,mongoid 在 localhost 中找不到 mongodb 服务器,我在生产服务器中收到错误:
Could not connect to any secondary or primary nodes for replica set <Moped::Cluster nodes=[<Moped::Node resolved_address="127.0.0.1:27017">]>
我需要在我的开发环境中使用我的本地 mongodb 数据库,在生产服务器中使用我的远程服务器 mongodb 数据库。
我想知道如何解决这个问题
【问题讨论】:
-
好吧,你的数据库在哪里并不重要——只要你的 db.yml 中提供的信息是正确的,它应该使用基于 rails 环境的正确设置。如果它加载错误的数据库设置,则 RAILS_ENV 不正确。如果您想在另一个环境中执行任务,请使用 RAILS_ENV=production。
标签: ruby-on-rails ruby ruby-on-rails-3 mongodb mongoid