28

ドキュメントを削除しましたが、まだ に表示されている_changesため、削除された last valid を確認できます_rev。id でドキュメントを取得すると、最後のリビジョンは次のように返されます。

{
  "_id":"25efa4ec8489d8b89b34c5cad6000059",
  "_rev":"3-a982bd6dccce8f405433f8453ab86880",
  "_deleted":true
}

他の属性はありません。

この状況でどうすれば回復できますか?以前のリビジョンは に表示されません_changes。空のドキュメント ( に設定) を書き込む_deletedfalse、すべてのリビジョン情報を表示するのに役立ちますか?

4

3 に答える 3

52

わかりました、誰かが興味を持っているなら、それを理解してください:

  1. 削除された履歴を取得します。例:

    curl http://example.iriscouch.com/test/_changes
    
  2. 削除されたドキュメントが$id$revで表示され、空のドキュメントを新しいバージョンとして配置します。例:

    curl -X PUT http://example.iriscouch.com/test/$id?rev=$rev -H "Content-Type: application/json" -d {}
    
  3. すべてのリビジョン情報を取得できるようになりました。例:

    curl http://example.iriscouch.com/test/$id?revs_info=true
    
  4. 削除する前にバージョンを取得します。例:

    curl http://example.iriscouch.com/test/$id?rev=$prev_rev
    
  5. それをcouchdbに戻します。例:

    curl -X PUT http://example.iriscouch.com/test/$id?rev=$rev -H \'Content-Type: application/json\' -d \'$data\'
    

何か良い方法やスクリプトがあれば教えてください。

于 2012-06-01T21:05:50.547 に答える