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に付属)を使用している場合は、ソースからCouchDBをインストールする代わりにPPAを使用できます。たとえば、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にアップグレードした後、問題は解決しました。

編集:couchdbバージョン1.5.0がUbuntu Trusty(http://packages.ubuntu.com/trusty/couchdb )に含まれているため、Novacutリポジトリはのパッケージをホストしなくなりました。

于 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 に答える