3

http://couchapp.org/page/couchapp-configのマニュアルには、パスワードをに保存できると記載されています~/.couchapp.conf。ただし、dbURLは実際には特定のデータベースへのURLです。異なるデータベースに2つのアプリケーション、たとえば/db1とが存在する場合は/db2、次のようにする必要があります。

{
  "env" : {
    "default" : {
      "db" : "http://admin:pass@localhost:5984/db1"
    }
  }
}

と:

{
  "env" : {
    "default" : {
      "db" : "http://admin:pass@localhost:5984/db2"
    }
  }
}

しかし、これを1つにマージする方法がわかりません(defaultハックの代わりに、DBごとに1つの「環境」を追加するdefault-db1場合を除きますdefault-db2)。

これを1つに組み合わせるにはどうすればよいですか。たとえば、それぞれのアプリケーションまたは同様のもののファイル内で指定db1しますか?db2.couchapprc

4

2 に答える 2

2

現在はテストできませんが、2つの環境をマージして、異なる名前(たとえば、「env1」と「env2」)を付ける必要があると思います。

{
  "env" : {
    "env1" : {
      "db" : "http://admin:pass@localhost:5984/db1"
    },
    "env2" : {
      "db" : "http://admin:pass@localhost:5984/db2"
    }
  }
}

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

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

于 2011-08-18T14:35:05.357 に答える
1

見てみるとdist-packages/couchapp/config.py、メソッドConfig.loadは途中でこれを行います:

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

use_environment=True。これは、グローバル〜/ .couchapp.confファイル内の変数を考慮しないため、完璧なことではありませんが、少なくとも回避策を提供します。必要な環境変数、sayCOUCHAPP_USERとを定義しCOUCHAPP_PASS、それらをで使用するだけです。 couchapprcファイル:

"db" : "http://$COUCHAPP_USER:$COUCHAPP_PASS@localhost:5984/db1"

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

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

そしてそれは期待通りに動作します。

于 2012-01-13T02:45:33.840 に答える