解決由官方文檔建議複製衝突的方式是:解決複製衝突已刪除的文件在CouchDB中
- 使用文檔的
_conflicts
場(通過如視圖) - 獲取所有版本文檔閱讀衝突的修訂上市
- 執行應用程序特定合併
- 刪除不需要修改
問題出現在我想合併時刪除文件。他們不出現在_conflicts
字段中,但在_deleted_conflicts
。如果我只合併使用_conflicts
字段,並且在本地數據庫中刪除文檔並在遠程副本中進行編輯,則它將在複製時在本地復活。我的應用程序模型假設合併時始終優先刪除:刪除的文檔會保留刪除狀態,無論它與哪些編輯衝突。
因此,乍一看,最簡單的事情是檢查_deleted_conflicts
是否爲空,如果它不是空的,刪除文檔,對吧?那麼...問題在於,這也可能包含通過解決第4步中的編輯衝突引入的已刪除修訂,因此在這種情況下_deleted_conflicts
的含義不明確。
處理CouchDB中的刪除衝突(如果有的話)的規範方式不涉及到將文檔標記爲已刪除和在應用程序層進行過濾等粗略內容?