Backing up design documents
Design documents are backed up with the design_doc_only=1 option.
You can backup only design documents from a cluster or bucket with the option, design_doc_only=1. You can later restore the design documents only with cbrestore:
> ./cbbackup http://10.5.2.30:8091 ~/backup -x design_doc_only=1 -b bucket_name
transfer design doc only. bucket msgs will be skipped.
done
Where you provide the hostname and port for a node in the cluster. This will make a backup copy of all design documents from bucket_name and store this as design.json in the directory ~/backup/bucket_name. If you do not provide a named bucket it will backup design documents for all buckets in the cluster. In this example we did a backup of two design documents on a node and our file will appear as follows:
[
{
"controllers":{
"compact":"/pools/default/buckets/default/ddocs/_design%2Fddoc1/controller/compactView",
"setUpdateMinChanges":"/pools/default/buckets/default/ddocs/_design%2Fddoc1/controller/setUpdateMinChanges"
},
"doc":{
"json":{
"views":{
"view1":{
"map":"function(doc){emit(doc.key,doc.key_num);}"
},
"view2":{
"map":"function(doc,meta){emit(meta.id,doc.key);}"
}
}
},
"meta":{
"rev":"1-6f9bfe0a",
"id":"_design/ddoc1"
}
}
},
{
"controllers":{
"compact":"/pools/default/buckets/default/ddocs/_design%2Fddoc2/controller/compactView",
"setUpdateMinChanges":"/pools/default/buckets/default/ddocs/_design%2Fddoc2/controller/setUpdateMinChanges"
},
"doc":{
"json":{
"views":{
"dothis":{
"map":"function (doc, meta) {\n emit(meta.id, null);\n}"
}
}
},
"meta":{
"rev":"1-4b533871",
"id":"_design/ddoc2"
}
}
},
{
"controllers":{
"compact":"/pools/default/buckets/default/ddocs/_design%2Fdev_ddoc2/controller/compactView",
"setUpdateMinChanges":"/pools/default/buckets/default/ddocs/_design%2Fdev_ddoc2/controller/setUpdateMinChanges"
},
"doc":{
"json":{
"views":{
"dothat":{
"map":"function (doc, meta) {\n emit(meta.id, null);\n}"
}
}
},
"meta":{
"rev":"1-a8b6f59b",
"id":"_design/dev_ddoc2"
}
}
}
]