2011-07-19 6 views
1

私の開発マシンは、私のデプロイメント/プロダクションサーバーとはいくつか異なっており、変更できません。 (例えば、私の開発マシンには、異なるポート上で動作する複数のバージョンのデータベースサーバがあり、各プロダクションサーバは1つのバージョンのRDBMSだけを実行し、各インスタンスはデフォルトポート上で稼動します)。Sinatraの設定をマシン単位で変更する

あるマシンでSinatra Webアプリケーションを別のマシンと別のマシンで構成する理想的には、答えはの複数のアプローチを要約し、回答者にとって最も効果的なアプローチを強調します。どのファイルベースのソリューションでも、両方のマシン間で統合されたソース管理リポジトリが存在する場合に、この状況をどのように処理するかについて理想的に議論する必要があります。

この質問/問題は、開発モードとプロダクションモードの構成とは正反対です。まず、メイン1(settings.rb、のは言わせて)、その後、必要な設定(settings-custom.rb)をオーバーライドしますマシン固有の1:

答えて

3

一つの解決策は、2つの設定ファイルをロードすることです。

もちろん、複数のマシンがあるため、複数の構成セットがあります。それらを簡単に管理するために、名前はsettings-$hostname.rbとすることができます。次に適切なファイルをsettings-custom.rbにシンボリックリンクするだけです。たとえば、UNIXの場合:

ln -s settings-`hostname`.rb settings-custom.rb 

を使用すると、ソースコントロールを使用する場合は、すべてのコンフィギュレーションセットを追跡することができ、そして(それが唯一のシンボリックリンクだし、追跡する必要がないため)settings-custom.rbを無視する - これにメソッド間でコードを変更する必要はありません。

関連する問題