2012-06-25 54 views
1

我有一大堆CouchDB數據庫中的文檔,這些文檔只是使用_deleted:true而被意外批量刪除。我還爲這組數據提供備份,其中包括他們上次已知的良好修訂和元數據。我需要保持相同的_id,所以使用新的_id進行簡單恢復不是一種選擇。如何「取消刪除」CouchDB中的一組文檔?

壓實尚未運行,我可以通過&rev= url參數及其附件(需要)訪問這些文檔中的任何一個。

我需要做的是將這些文檔「還原」到我對文件所做的修訂中。令人驚訝的是,我對任何關於如何實現這一目標的疑問一無所知。提示或黑客讚賞。

回答

2

如果您只是將PUT包括附件存根的整個文檔重新放回數據庫,並刪除rev,但少了參數_deleted:true,那麼一切都會好的。

+2

我接受了這個答案,因爲它是正確的,但有一個重要的警告 - 即_attachments屬性必須仍然存在於_deleted文檔中。如果您已經排除了此屬性,則可以嘗試進行元數據還原,但會遇到此錯誤消息:「{」error「:」missing_stub「,」reason「:」id:777a5466a2ecd90a288ce38f4422a82bf,name:myattachment「} '。這種情況下的解決方案(與我的實際情況一樣)是運行批處理作業以從舊版本中檢索附件,從備份中恢復文檔屬性,然後重新附加剛剛批量處理的文件 – radicand

+0

我認爲當你說你已經通過使用'_deleted:true'刪除了文檔,而你沒有刪除'_attachments'存根。如果你刪除它們然後是的,你需要從其他地方恢復它們。 – smathy

相關問題