我升级到 mongoid 3.0.1 并创建了新格式的 mongoid.yml - 我的 mongoid.yml 看起来像这样:
production:
sessions:
default:
database: grbr_production
hosts:
- localhost:27017
options:
consistency: :strong
options:
raise_not_found_error: false
test:
sessions:
default:
database: grbr_test
hosts:
- localhost:27017
options:
consistency: :strong
raise_not_found_error: false
development:
sessions:
default:
database: grbr_development
hosts:
- localhost:27017
options:
consistency: :strong
raise_not_found_error: false
在开发中,我看到选择了正确的数据库。但在生产中,我看到“管理员”数据库被选中,这破坏了我的应用程序。我已在生产机器中将 RAILS_ENV 设置为“生产”,但仍然看到此错误。我看到的另一个非常奇怪的事情是,在生产中,moped 甚至不查询数据库。以下来自开发和生产的日志显示:
Development log:
MOPED: 127.0.0.1:27017 COMMAND database=admin command={:ismaster=>1} (0.6645ms)**
MOPED: 127.0.0.1:27017 QUERY database=grbr_development collection=topsearches selector={"$query"=>{"type"=>"books"}, "$orderby"=>{"cnt"=>-1}} flags=[] limit=10 skip=0 fields=nil (0.8984ms)
Production Log:
MOPED: 127.0.0.1:27017 COMMAND database=admin command={:ismaster=>1} (0.6878ms)**
所以在生产中,我看不到生产数据库上的查询被触发。