0

production1 台のマシンにとstaging環境があります。1 つの Rails アプリがフルタイムで動作します。1 つの (実際には同じ) Rails アプリは、新機能のテスト/実装専用です。

だから私はmongodbを使用します:

mongod --dbpath /path/to/my/production/rails/app/db

また、1つのmongodを次のように実行したいと思います:

mongod --dbpath /path/to/my/staging/rails/app/db

しかし、それを行う方法を想像することはできません。説明どおりに行うと、明らかに次のようになるからです。

Mon Oct 14 16:12:59 [initandlisten] ERROR: listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
Mon Oct 14 16:12:59 [initandlisten] ERROR:   addr already in use

では、1 台のマシンで 2 つの異なる mongodb インスタンスを操作して、運用アプリとステージング アプリの両方を個別に操作できるようにするためのベスト プラクティスは何ですか?

アップデート:

もちろん、Rails アプリ (mongodb.yml など) 内で異なる環境を定義し、同じ mongod プロセスとポートを使用することをお勧めしますが、(環境を完全に分離するために) 次のようなことが可能であれば興味深いでしょう。

port 27017 <--> --dbpath /path/to/my/production/rails/app/db
port 27018 <--> --dbpath /path/to/my/staging/rails/app/db
4

2 に答える 2