Не удается выполнить репликацию на iriscouch
Я пытаюсь создать пример приложения, используя 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]}}}
Где я ошибаюсь?
2 ответа
Если вы используете 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 вы используете в своей локальной системе?
В любом случае, быстрым обходным путем будет редактирование исходного кода 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}.
Однако, надеюсь, мы сможем найти что-то лучшее, чем это, определив ваши версии.