3

http://couchapp.org/page/couchapp-config上的手册说您可以将密码存储在~/.couchapp.conf. 但是,该dburl 实际上是特定数据库的 url。如果在不同的数据库中有两个应用程序,比如说/db1/db2,那么我们必须有这个:

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

和:

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

但是我不知道如何将其合并为一个(除非使用hack代替defaulthack来为每个数据库添加一个“环境”,例如default-db1等等default-db2)。

我怎样才能将它组合成一个,例如我在各自的应用程序或类似的文件中指定db1db2内?.couchapprc

4

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 文件中的变量,但它至少提供了一种解决方法 - 只需定义必要的环境变量,比如COUCHAPP_USERand COUCHAPP_PASS,然后在 .沙发apprc文件:

"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 回答