2011-09-15 13 views
3

CouchDB 1.1.0に問題があります。私はラップトップにデータベースを作成し、それを私のサーバに複製しました。次に、ローカルデータベースに添付ファイルを追加し、それらをリモートデータベースに複製しました。CouchDBのGhost添付ファイル

2回目のレプリケーションでは、エラーが発生したようです。添付ファイルは正しくアップロードされましたが、ドキュメントに添付できませんでした。

データベースのサイズを確認すると、ここに表示されます。しかし、私はそれらを手に入れて、それらを削除する方法がありません。 (データベースをクリーニングしてもデータベースは削除されません)。

リモートから別のDBに複製する場合、私はまだ "ゴースト添付ファイル"を複製しています。

誰もこれについて考えていますか?この添付ファイルはどのように削除できますか?

答えて

7

の文書がある可能性があります。軍事衝突や倫理的な葛藤とは異なり

CouchDB conflictは通常、複製した後に発生する、通常と便利です。 (衝突は、Git、Mercurial、またはBzrの ブランチと多少似ています)

レプリケーション中に、CouchDBは同じドキュメントの代替バージョンを受け取ることがあります。この状況では、あるリビジョンを別のリビジョンに置き換える代わりに、CouchDBは両方のリビジョンを格納します。残念ながら、その文書をフェッチするようにCouchDBに問い合わせると、どの文書を送るかを決定する必要があります。基本的には1つのリビジョンを選択して送信します。通常のGET /db/doc_idクエリを使用すると、 "矛盾する"(代替)リビジョンがどこかのデータベースに隠れていることに気づかれることはありません。

上記のリンクは、(あなたが不要なリビジョンを削除すると、残りのリビジョンが表示されます。)コンフリクトを見つけ、解決する方法を示して重要な例は、競合を見つけるための図である。

function(doc) { 
    // Map function in a CouchDB view to find conflicts. 
    if(doc._conflicts) { 
    emit(doc._conflicts, null); 
    } 
} 

照会した場合その視点、私はあなたがいくつかの葛藤を見るだろうと思う。ビューが0行を返す場合、これはまったく問題ではなく、問題については引き続き検討する必要があります。

0

私は競合しました。おかげでジェイソン

誰かが競合に関する詳細情報が必要な場合は、単に

http://guide.couchdb.org/draft/conflicts.html

私はちょうどビュー経由ですべての競合を取得し、それらを削除するには、小さなノードスクリプトを作成しました。

関連する問題