production
1 台のマシンにと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