复制到 iriscouch 失败

Posted

技术标签:

【中文标题】复制到 iriscouch 失败【英文标题】:Replication to iriscouch fails 【发布时间】:2012-07-22 16:54:21 【问题描述】:

我正在尝试使用 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]

我哪里出错了?

【问题讨论】:

这是真正的root密码吗? 【参考方案1】:

如果您使用的是 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) 中。

【讨论】:

couchdb 已经是最新版本。 0 升级,0 新安装,0 删除,232 未升级。但它不是。它是 1.0.1 我相信 Novacut(实际上是一个协作视频编辑器,而不是 CouchDB 本身)背后的人在一年多前进入 14.04 时从他们的存储库中删除了 couchdb 包;因此,apt-get 使用的是官方 Ubuntu 档案中的版本。如果你不得不坚持使用 12.04,那很不幸。【参考方案2】:

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

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

例如,src/couchdb/couch_doc.erl

-spec to_path(#doc) -> path().
to_path(#docrevs=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.

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

【讨论】:

我本地的 couchdb 版本是 1.0.1。但 iriscouch 托管 1.2.0。我尝试从源代码安装它。但是它对我不起作用。 :(

以上是关于复制到 iriscouch 失败的主要内容,如果未能解决你的问题,请参考以下文章

gsutil 复制到存储失败

Couchbase Mobile (ios) 复制的数据量太大

升级到 1.9 后,使用 sudo 复制 Ansible 文件失败

Azure 数据工厂复制活动失败。用户登录失败

在时间戳列中插入 Null 时,雪花复制到失败

为啥将 cv::Mat 的一列复制到向量中失败?