couchdb-backup-restore
Creates backups of couchdb databases (.tar.gz files containing one .json file per database) and restores from those backups.
Also plays nice with Cloudant (hosted CouchDB service).
Limitations
-
This library does not support attachments, right now. It will only back up and restore documents. PR's welcome.
-
This backs up only the current revision (
_rev
) of each document; backing up and restoring will loose all previous revisions. (This is normal behavior though - to quote the documentation, You cannot rely on document revisions for any other purpose than concurrency control.)
Install
$ npm install --save couchdb-backup-restore
Usage
var cbr = require('couchdb-backup-restore');
var config = {credentials: 'http://localhost:5984'};
function done(err) {
if (err) {
return console.error(err);
}
console.log('all done!');
}
// backup
cbr.backup(config, done).pipe(fs.createWriteStream('./db-backup.tar.gz'))
// restore
fs.createReadStream('./db-backup.tar.gz').pipe(cbr.restore(config, done));
Bluemix / Cloudant example:
var cbr = require('couchdb-backup-restore');
var bluemix = require('bluemix');
var config = {
credentials: bluemix.getService('cloudantNoSQLDB').credentials
}
// or just var config = bluemix.getService('cloudantNoSQLDB');
Configuring
Default options are:
{
credentials: 'http://localhost:5984',
excludeDbs: ['_replicator', '_users'], // automatic built-in dbs that you probably don't want to backup
databases: null
}
-
credentials
is passed directly to nano and can be either a straight url or a configuration object. -
excludeDbs
should be an array, although it may be an empty array ([]
) if you want to include the built-in_replicator
and_users
databases. -
databases
may be an array. If set, CBR will only back up the specified DBs, overriding theexcludeDbs
option.
License
MIT © Nathan Friedly