我在我的couchdb中对一堆文档进行了大量编辑,但是我犯了一个错误并且不正确地覆盖了一个字段。我可以看到之前的版本就在那里。我该如何恢复它?
答案 0 :(得分: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