2016-07-01 14 views
1

2つのサーバーインスタンス(異なるポート、異なるPID)を実行しているレールアプリケーションがあります。 (:それぞれ、db12345db54321例えば)それぞれ異なるデータベースを使用する同じRailsアプリケーションの異なるインスタンス

rails s -p 8081 -P 12345 
rails s -p 8082 -P 54321 

しかし、私は別のMongoDBデータベースに接続するためにそれらのそれぞれを希望します。

問題は、これが可能かどうか、もしそうなら、私のmongoid.yml設定ファイルでそれを指定する方法がわからないということです。

私はdb12345データベースを使用できるように私のmongoid.ymlファイルのそれぞれのセクションでは、現在、次のようになります。

development: 
    options: 
    raise_not_found_error: false 
    sessions: 
    default: 
     database: **db12345** 
     hosts: 
     - localhost:27017 
     options: 
     max_retries: 30 
     retry_interval: 1 
     timeout: 15 
     refresh_interval: 10 

の各インスタンスをリンクする方法を見つけることです私はとのトラブルを抱えています同じレールアプリを(異なる)データベースに使用する必要があります。これはmongoid.ymlで扱われることさえありますか?

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

答えて

1

これは環境変数で制御できます。アプリは、この方法で開始している:

DBNAME=db12345 rails s -p 8081 -P 12345 
DBNAME=db54321 rails s -p 8082 -P 54321 

それからちょうど正気デフォルトで、mongoid.ymlにこのVARを参照してください。

sessions: 
    default: 
     database: <%= ENV['DBNAME'] || 'db12345' %> 
+0

これはまさに私が探していたもの!どうもありがとうございます!これに関連するdba stackexchangeの質問もあります。私はこの仕組みがどういうものか分かりませんが、もしあなたが望むのであれば、そこにこの質問に答えることができます。ここにリンクがあります:https://dba.stackexchange.com/questions/142445/different-instances-of-the-same-rails-app-each-using-a-different-mongo-database –

+1

@MT:クロスポストはお勧めしませんスタック交換で。しかし、この質問は有効なDBAのように見えるので、そこにも回答を投稿します。 –

+0

ありがとうございます!知っておいてよかった!私は他の人がそこの答えを探しているかもしれないと思っていました。いずれにせよ、あなたの助けをありがとう! –

関連する問題