2016-09-14 79 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