复制到 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 失败的主要内容,如果未能解决你的问题,请参考以下文章
Couchbase Mobile (ios) 复制的数据量太大