2

我正在尝试使用 couchapp、couchdb 构建示例应用程序。我还使用 jquery.couch.js 插件与我的本地 couchdb 进行通信。但是,当我尝试将其复制到 iriscouch.com 上的远程沙发上时,出现以下错误:

Replication failed: {error,
{{badarg,
     [{erlang,list_to_existing_atom,["data_size"]},
      {couch_rep,'-dbinfo/1-lc$^0/1-0-',1},
      {couch_rep,'-dbinfo/1-lc$^0/1-0-',1},
      {couch_rep,do_init,1},
      {couch_rep,init,1},
      {gen_server,init_it,6},
      {proc_lib,init_p_do_apply,3}]},
 {child,undefined,"6f5beff2bd381e02b602cee2e8e1e86d",
     {gen_server,start_link,
         [couch_rep,
          ["6f5beff2bd381e02b602cee2e8e1e86d",
           {[{<<"source">>,<<"zwaroop">>},
             {<<"target">>,
              <<"http://username:password@swaroopsm.iriscouch.com/zwaroop">>}]},
           {user_ctx,<<"root">>,
               [<<"_admin">>],
               <<"{couch_httpd_auth, cookie_authentication_handler}">>}],
          []]},
     temporary,1,worker,
     [couch_rep]}}}

我哪里错了?

4

2 回答 2

3

如果您使用的是 Ubuntu 12.04(CouchDB v1.0.1 附带),您可以使用 PPA 而不是从源代码安装 CouchDB。例如,为了精确起见, https ://launchpad.net/~novacut/+archive/daily 有一个 1.2.0 的反向端口;我安装了它

$ sudo apt-add-repository ppa:novacut/daily
$ sudo apt-get update
$ sudo apt-get install couchdb

升级到 1.2.0 后问题解决了。

编辑: Novacut 存储库不再为 托管包couchdb,因为 1.5.0 版已包含在 Ubuntu Trusty ( http://packages.ubuntu.com/trusty/couchdb ) 中。

于 2012-12-12T00:57:45.157 回答
1

我想知道这是不是版本不匹配?您在本地系统上使用的是什么版本的 CouchDB?

无论如何,一个快速的解决方法是编辑 CouchDB 的源代码并data_size在代码中的任何位置插入。

例如,src/couchdb/couch_doc.erl

-spec to_path(#doc{}) -> path().
to_path(#doc{revs={Start, RevIds}}=Doc) ->
    data_size, % This no-op expression allows list_to_existing_atom
    [Branch] = to_branch(Doc, lists:reverse(RevIds)),
    {Start - length(RevIds) + 1, Branch}.

但是希望我们可以通过识别您的版本找到比这更好的东西。

于 2012-07-22T23:56:56.423 回答