2016-09-14 76 views
0

让我提供一个场景:发生冲突时,可以将PouchDB删除的文档“取消删除”吗?

我有一个文档_id: 'doc-123'。我通过与_deleted: true删除它。

在单独的设备上,我创建了一个或多个doc-123的新修订版,但我从不删除该文档。

当它们同步并发生冲突时,我需要保证_deleted: true版本将获胜。

作者:PouchDB(也许CouchDB以及?)冲突解决算法,如果在这个被删除的文档和该文档的新修订版(但没有删除)之间确实发生了最终冲突,是否有可能保证被删除的文件修改将永远是获胜的文件?

我想确保冲突的情况不会导致文档复活。

默认情况下是这种行为还是需要为这种情况编写冲突解决代码?

我看了PouchDB conflicts document,没有看到任何提到这一点。

回答

1

CouchDB/PouchDB中的冲突必须手动解决(因为在数据库中不会为你做这件事,你仍然可以自动执行它)。由于您必须手动执行此操作,因此您可以选择满足您需求的任何逻辑。

+0

在Pouchdb中做这种事情的最佳地点在哪里(全球范围内)? – aeharding

+0

它可能是周期性的,或者它可以手动调用(例如,从菜单) – Kul

+0

要做到这一点的最佳方式是检查_deleted_conflicts,然后将_deleted:true添加到获胜的版本(然后删除冲突版本) ? – aeharding