我在我的 couchdb 中对一堆文档进行了大规模编辑,但我犯了一个错误并且不正确地覆盖了一个字段。我可以看到以前的版本在那里。我如何恢复到它?
问问题
2874 次
1 回答
3
我目前的最佳猜测,基于此:
http://guide.couchdb.org/draft/conflicts.html
...是查找文档 ID 和修订 ID,然后为该文档发送删除,指定我想要删除的修订。
curl -X DELETE $HOST/databasename/doc-id?rev=2-de0ea16f8621cbac506d23a0fbbde08a
我认为这将留下以前的修订。那里有更好的想法吗?
我不得不编写一些咖啡脚本(使用 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
于 2012-08-26T20:16:37.157 回答