1

これは私の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サーバーは、別の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">]>

開発環境で localhost mongodb データベースを使用し、運用サーバーでリモートサーバー mongodb データベースを使用する必要があります。

この問題を解決する方法を教えてください

4

1 に答える 1

2

マグナスとデュランに感謝します。応答は次のとおりです。

rake environment tire:import CLASS='Object' FORCE=true RAILS_ENV=production

追加RAILS_ENV=productionすると、問題が修正されました:)。

ありがとうございました!

于 2013-04-08T15:30:52.330 に答える