2011-08-17 2 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" 
    } 
    } 
} 

를 실행 한 다음, 다른 데이터베이스에있는 두 개의 응용 프로그램이있는 경우, 우리는 이것을 가지고해야 할 것, /db1/db2 말 (예 : default 대신 DB 당 하나의 "환경"을 추가하는 데 해킹이 사용되지 않는 한 default-db1default-db2 등).

어떻게 하나로 결합 할 수 있습니까? 예 : 각 신청서 또는 유사 항목에 .couchapprc 개의 파일에 db1db2을 지정합니다.

답변

1

, 방법

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

use_environment=True. 글로벌 ~/.couchapp.conf 파일의 변수를 고려하지 않았으므로 완벽한 해결책은 아니지만 해결 방법은 적어도 있습니다. 예를 들어 과 COUCHAPP_PASS 등 필요한 환경 변수를 정의하고 .couchapprc 파일 :

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

지금 당신이 couchapp push을 실행할 수는 예상대로

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

그것은 작동합니다.

2

("env2을"예 "env1을", 등) 지금은 그것을 테스트 할 수 없습니다,하지만 난 당신이 단순히 그들에게 다른 이름을주는 두 가지 환경을 병합해야한다고 생각 :

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

이 그런 환경을 통과 마지막 명령 줄 인수는 couchapp push env1입니다.

그러나 가장 쉬운 해결책은 .couchapprc에있는 정보를 프로젝트의 루트에 넣은 다음 .gitignore, .htignore 또는 버전 제어에 사용하는 모든 것을 추가하는 것입니다. 중간에이 작업을 수행 Config.loaddist-packages/couchapp/config.py에서 찾고

+0

문제는 내가 이것을 별도로 갖고 싶다는 것입니다. 글로벌 파일의 모든 환경을 정의하고 싶지는 않습니다. 암호를 주위에 전파하고 싶지 않습니다 (예 : 암호를 변경하면 사방을 변경해야합니다). 공유 할 때 암호를 사용하는 것이 중요합니다. 다른 사람들은 내 대신 자신의 설정을 사용합니다. –