2017-04-04 8 views
0

デプロイされたClojure Luminusアプリで設定を保存して取得する方法は何ですか?デプロイされたClojureアプリのローカル設定

私のアプリをベースとするLuminusテンプレートでは、profiles.cljファイルがデータベース接続文字列の格納に使用されます。しかし、lein uberjarを使ってアプリケーションをコンパイルすると、profiles.cljの設定はコンパイルされたファイルに含まれていないようです。それにもかかわらず、データベース接続がコンパイルされたファイルに格納されるのではなく、運用サーバーの構成ファイルに格納されることを望んでいます。

ローカル設定は、アプリが開発モードまたは本番モードで実行されているかどうかに関係なく、同じ方法で保存および取得する必要があります。しかし、私はそれを行う方法を理解することはできません。

答えて

1

the environ libraryをご利用いただきありがとうございます。 READMEから:


データベース接続が必要なアプリケーションがあるとします。しばしば、開発用、テスト用、およびプロダクション用の3つの異なるデータベースが必要になります。

environ.core/envマップのdatabase-urlからデータベース接続の詳細を取得できます。

(require '[environ.core :refer [env]]) 

(def database-url 
    (env :database-url)) 

このキーの値は、いくつかの方法で設定できます。開発中の最も一般的な方法は、プロジェクトディレクトリ内のローカルprofiles.cljファイルを使用することです。このファイルには、標準のproject.cljファイルとマージされたマップが含まれていましたが、バージョン管理を行わずにローカル開発オプション用に予約することもできます。

{:dev {:env {:database-url "jdbc:postgresql://localhost/dev"}} 
:test {:env {:database-url "jdbc:postgresql://localhost/test"}}} 
+1

LuminusテンプレートはEnvironを使用しているため、これは良いアドバイスです。 http://www.luminusweb.net/docs/environment.md – Scott

+0

ありがとう!しかし、私はenvironライブラリを使ってローカル設定ファイルをどのように実装するのかはよく分かりません。私は、SMTP設定、データベース接続変数、および現在の環境に特有のその他のさまざまな変数を含めたいと思うようなファイルです。 –

関連する問題