3

私は 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 を「production」に設定しましたが、それでもこのエラーが表示されます。私が目にするもう 1 つの非常に奇妙な点は、実稼働環境では、モペットがデータベースに対してクエリを実行することさえしないということです。開発および本番環境からの次のログは、次のことを示しています。

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)**

そのため、本番環境では、クエリが本番データベースで起動されるのを確認できません。

4

1 に答える 1

0

プロダクションがローカルホストを指しているのはなぜですか? それはオフのようです。

次のようなことを試してみてください:

production:
  sessions:
    default:
      uri: "YOUR-DB-ADDRESS"
于 2014-01-21T03:27:51.233 に答える