在_conflict之后CouchDB复制停止

问题描述 投票:5回答:1

我有一个用户今天没有复制其他用户在我的CoucDB数据库中添加的新文档,换句话说用户A没有看到用户B,C每天都添加的文档。

我已经看到从用户A添加到CouchDB的最后一个文档,我看到该文档有一个新字段

_conflicts:[“2-17d3fcec15fbe3b1eed3e7f8a14eae35”]}

enter image description here

我想冲突是在文件的第二次修订中,不是吗?关于同一文件我有7个版本我的问题是如何解决它?我怎么能消除这种冲突?

couchdb revision-history revisions
1个回答
2
投票

CouchDB不会尝试合并冲突的修订版。

您的应用程序决定了如何进行合并。

http://docs.couchdb.org/en/2.0.0/replication/conflicts.html

但一般来说,建议的算法来获取具有冲突解决方案的文档:

  • 通过GET docid?conflicts=true request获取文件;
  • 对于_conflicts数组中的每个成员call GET docid?rev=xxx。如果在此阶段发生任何错误,请从步骤1重新启动。(可能存在其他人已解决此冲突并删除该转速的竞赛)
  • 执行特定于应用程序的合并
  • 将_bulk_docs写入第一次转速的更新并删除其他转速。

alos在ruby上看到了这个版本

© www.soinside.com 2019 - 2024. All rights reserved.