2011-08-17 6 views
3

http://couchapp.org/page/couchapp-configのマニュアルには、パスワードを~/.couchapp.confに保存できると記載されています。ただし、dbのURLは、特定のデータベースのURLです。しかし、私はこれをマージすることができる方法を見ていない異なるアプリケーションの〜/ .couchapp.confからのパスワードの再利用.couchapprc

{ 
    "env" : { 
    "default" : { 
     "db" : "http://admin:[email protected]:5984/db2" 
    } 
    } 
} 

{ 
    "env" : { 
    "default" : { 
     "db" : "http://admin:[email protected]:5984/db1" 
    } 
    } 
} 

とを:異なるデータベースに2つのアプリケーションがある場合は、我々はこれを持っている必要があるだろう、/db1/db2言います(defaultの代わりに、DBごとに1つの "環境"を追加するためにハックを使用しない限り、例えばdefault-db1およびdefault-db2など)。

どうすれば1つにまとめることができますか?私はdb1db2.couchapprcファイル内に指定​​していますか?

答えて

1

。グローバル〜/ .couchapp.confファイル内の変数を考慮していないので、これは完璧なことではありませんが、少なくとも回避策があります。例えば、とCOUCHAPP_PASSという必要な環境変数を定義し、 .couchapprcファイル:

$ export COUCHAPP_USER=testadmin 
$ export COUCHAPP_PASS=pass 
$ couchapp push 

をし、期待どおりに動作します:

"db" : "http://$COUCHAPP_USER:[email protected]:5984/db1" 

今、あなたはcouchapp pushを実行することができます。

2

私は今それをテストすることはできませんが、私はあなたが単純に2彼らに別の名前を与えた環境(例えば、「ENV1」、および「ENV2」)をマージするべきだと思う:

{ 
    "env" : { 
    "env1" : { 
     "db" : "http://admin:[email protected]:5984/db1" 
    }, 
    "env2" : { 
     "db" : "http://admin:[email protected]:5984/db2" 
    } 
    } 
} 

次に環境を渡します最後のコマンドライン引数:couchapp push env1

しかし、最も簡単な解決策は、.couchapprcの情報をプロジェクトのルートに入れて、.gitignore.htignore、またはバージョン管理に使用するものを追加することです。

new_conf = util.read_json(p, use_environment=True, 
    raise_on_error=True) 

use_environment=True:途中でこれを行うConfig.loaddist-packages/couchapp/config.py、この方法で探し

+0

問題は私がこれを別にしたいということです。私はグローバルファイル内のすべての環境を定義したくないので、パスワードを全周に広げたくない(たとえばパスを変更するとどこでも変更しなければならない)、共有すると重要なことです他の人は私の代わりに自分の設定を使用します。 –

関連する問題