在远程数据库中清除文档后如何重新复制它们

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

我有一个应用程序,其中远程数据库中可用的文档是服务器上可用文档的子集。当用户所需的子集发生更改时,将清除远程数据库中不再需要的文档(是,已清除,未删除),并复制了新文档。如果将用户所需的子集更改为包括以前已清除的文档,我将找不到一种方法来再次复制已清除的文档以在客户端上恢复它们​​。

要考虑的简单场景是:

  1. 创建两个数据库,A和B
  2. 在A中创建文档“ D”
  3. 将数据库A复制到B
  4. 在B中,清除D
  5. 再次将A复制到B,并注意没有复制D

我尝试压缩B,但无济于事。我可以理解,对于连续复制,D不会再次发送,因为它没有更改。但是我也无法使用一次性复制来重新复制D。 CouchDB处于这种状态后,如何将复制副本D从A复制到B?

我正在使用CouchDB 2.3。

couchdb
1个回答
0
投票
它可能正在获取此日志,并从其保留的地方开始提取,因此忽略了上次复制之前发生的更改(例如创建现在要清除的文档)。

我可以想到两种解决方案:

    通过查找_local/文档并删除它们来手动删除这些复制日志。
  1. 甚至略微更改复制参数,以便CouchDB为记录而生成新的replication ID。一种方法是添加过滤器功能(它可能是不过滤任何内容的过滤器功能)。

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