1.1.6 • Published 4 years ago
couchdb-backup-restore v1.1.6
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