我正在设计一个系统,它将使用CouchDB和TouchDB \ CloudantSync来缓存用户的数据库。智能手机使用复制 现在让我们说我有1000个文档,每个文档都有一个100Kb的附件,我想通过删除文档来释放智能手机上的一些空间。
我希望在删除某些文档后,我可以再次从服务器复制它。 这与删除不同,后者将为文档提供新的修订版本,并避免再次从服务器复制它(因为智能手机上已删除的文档是未删除文档的子文件。)
我显然可以在服务器文档上进行冗余更新,但这样做效率不高......
有没有办法去" unsync"文件?
答案 0 :(得分:2)
您可以在本地为每个用户创建一个数据库,用户的智能手机设置为连续复制。然后,要将文档推送给用户,请将其从主数据库复制到本地用户数据库,以便由复制获取。要远程删除它,只能在本地用户db中删除它,传播删除。要将其重新复制到设备,您必须使用主数据库中的原始文件手动覆盖已删除的文档。
答案 1 :(得分:0)
resynced: true
。别忘了更新复制过滤器和 unsycned_documents 列表。resynced: true
的修订版)来解决冲突。我在谈论需要单向(服务器 - >用户)复制的情况。即,用户仅具有读取权限。如果您授予用户写入权限,您应该找到一种方法来有意删除文档和"取消同步"。
答案 2 :(得分:-1)
查看此bug on TouchDB。这听起来像清除功能是你需要的。
但是,这可能会影响重复复制,如错误中所述。我不确定TouchDB是否支持命名文档复制,我认为这就是你解决标准复制行为的方法。
不幸的是,我们还没有暴露出对Cloudant Sync的清除(它在路线图上)。