CouchDB 复制在 _conflict 后停止
CouchDB replication stopped after a _conflict
我有一个用户今天没有复制其他用户添加到我的 CoucDB
数据库中的新文档,换句话说,用户 A 没有查看用户 B、C 每天添加的文档。
我看到了用户 A 添加到 CouchDB 的最后一个文档,我看到该文档有一个新字段
_conflicts: ["2-17d3fcec15fbe3b1eed3e7f8a14eae35"]}
我猜冲突是在第二次修改文件时,是吗?我对同一份文件有 7 次修订
我的问题是如何解决?我怎样才能消除这个冲突?
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 更新第一个版本并删除其他版本。
也可以在 ruby
上查看版本
我有一个用户今天没有复制其他用户添加到我的 CoucDB
数据库中的新文档,换句话说,用户 A 没有查看用户 B、C 每天添加的文档。
我看到了用户 A 添加到 CouchDB 的最后一个文档,我看到该文档有一个新字段
_conflicts: ["2-17d3fcec15fbe3b1eed3e7f8a14eae35"]}
我猜冲突是在第二次修改文件时,是吗?我对同一份文件有 7 次修订 我的问题是如何解决?我怎样才能消除这个冲突?
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 更新第一个版本并删除其他版本。
也可以在 ruby
上查看版本