2012-08-26 90 views
4

我在我的couchdb中對一批文檔進行了大量編輯,但是我犯了一個錯誤,並且不當地覆蓋了一個字段。我可以看到以前的版本在那裏。我該如何回覆它?在此基礎上如何還原couchdb中的更改?

回答

3

我目前最好的猜測,

http://guide.couchdb.org/draft/conflicts.html

...是要找到對文檔ID和版本ID,然後發送刪除該文件指定我要修改不見了。

curl -X DELETE $HOST/databasename/doc-id?rev=2-de0ea16f8621cbac506d23a0fbbde08a 

我認爲這將離開以前的修訂。有更好的想法嗎?

我不得不寫一些CoffeeScript中(使用underscore.js和jquery.couch)來做到這一點。這不是一個真正的迴歸,因爲我們正在獲取舊版本並使用它創建新版本。仍然在尋找更好的建議:

 _.each docsToRevert, (docToRevert) -> 
     $.couch.db("databaseName").openDoc docToRevert.id, 
      revs_info: true 
     , 
      success: (doc) -> 
      $.couch.db("databaseName").openDoc docToRevert.id, 
       rev: doc._revs_info[1].rev #1 gives us the previous revision 
      , 
       success: (previousDoc) -> 
       newDoc = previousDoc 
       newDoc._rev = doc._rev 
       result.save newDoc 
+0

在CouchDB中沒有恢復,它會中斷複製。 –