如何还原couchdb中的更改?

时间:2012-08-26 20:12:55

标签: couchdb

我在我的couchdb中对一堆文档进行了大量编辑,但是我犯了一个错误并且不正确地覆盖了一个字段。我可以看到之前的版本就在那里。我该如何恢复它?

1 个答案:

答案 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