Couchdb-是否有可能;“不礼貌”;复制的文件
我正在设计一个系统,使用CouchDB和TouchDB\CloudantSync在用户的智能手机上使用复制缓存数据库。 现在让我们假设我有1000个文档,每个文档都有一个100Kb的附件,我想通过删除一个文档在智能手机上释放一些空间 我希望在删除一些文档后,可以从服务器上再次复制它。 这与删除不同,删除会给文档一个新版本,并避免再次从服务器复制文档(因为智能手机上已删除的文档是未删除文档的子文档) 很明显,我可以对服务器文档进行冗余更新,但这是低效的 有没有办法“取消同步”文档?请查看此文档。听起来清除功能正是您所需要的 但是,这可能会影响错误中提到的重新复制。我不确定TouchDB是否支持命名文档复制,我认为这是您绕过标准复制行为的方法Couchdb-是否有可能;“不礼貌”;复制的文件,couchdb,cloudant,touchdb,Couchdb,Cloudant,Touchdb,我正在设计一个系统,使用CouchDB和TouchDB\CloudantSync在用户的智能手机上使用复制缓存数据库。 现在让我们假设我有1000个文档,每个文档都有一个100Kb的附件,我想通过删除一个文档在智能手机上释放一些空间 我希望在删除一些文档后,可以从服务器上再次复制它。 这与删除不同,删除会给文档一个新版本,并避免再次从服务器复制文档(因为智能手机上已删除的文档是未删除文档的子文档) 很明显,我可以对服务器文档进行冗余更新,但这是低效的 有没有办法“取消同步”文档?请查看此文档。听
不幸的是,我们还没有在Cloudant Sync上公开清除(它在路线图上)。您可以在本地为每个用户创建一个数据库,用户的智能手机设置为从该数据库进行连续复制。然后,要将文档推送到用户,请将其从master db复制到本地用户db,以便复制人员拾取。要远程删除它,请仅在本地用户数据库中删除它,并传播删除。要将其重新复制到设备,您必须手动使用主数据库中的原始文档覆盖已删除的文档
resynced:true
。不要忘记更新复制筛选器和未同步的文档列表resynced:true
删除修订版)我说的是需要单向(服务器->用户)复制的情况。i、 例如,用户只有读取权限。如果您授予用户写权限,您应该找到一种方法来区分故意删除文档和“取消同步”。来自:“如果您使用_purge来恢复空间,那么几乎可以肯定您使用CouchDB时不适当。开发人员不适当使用_purge的最常见原因是在管理短期数据时(日志条目、消息队列等)。更好的补救方法是定期切换到新数据库并删除旧数据库(一旦其中的条目全部过期)似乎他们在重新复制已清除的文档时也有问题,因为replicator只查看自上次成功复制以来在源数据库上创建的新修订版…此处为CouchDB dev。清除不适用于常规操作。如果您将SSN或信用卡号提交给CouchDB并需要o把它拿出来。虽然我坦率地承认它不是预期用途,但结合命名文档复制,我认为它可能适合使用情况。但是,如果它存在严重问题,我想了解原因。“重新复制”无法工作。用户数据库中已删除的文档是原始文档的子文档,因此从主数据库复制到用户数据库不会重新复制原始文档。@Oren您完全正确。编辑我的答案以反映这一点。