0.2.7 • Published 8 years ago
mongo-git-backup v0.2.7
mongo-git-backup

The tool exports text dump (via mongoexport) of given MongoDB database to given Git repository and restores it back (via mongoimport). Please read MIT License agreement before use.
Pros
- Github and Bitbucket are safe places to store data and history of data changes.
- You don't need to pay for a storage if you're able to create private repos (on Bitbucket they're free).
- You can make as many backups as you can and as often as you want since Git stores diffs instead of storing everything.
- Git GUI clients (including web UI) allow to nicely show diffs between two versions (two commits) of data.
Cons
- Likely, it isn't good for big databases.
Install
npm install -g mongo-git-backupTo run the tool on boot you need to install pm2.
npm install -g pm2CLI
mongo-git-backup export options
--db- DB name you want to export (required)--repo- a Git repository where you want to store backups (required)--host- DB host (optional,localhostby default)--port- DB port (optional,27017by default)--branch- a branch of the Git repository (optional,masterby default)--gitUserName- Git user name (optional)--gitUserEmail- Git user email (optional)--daemonize- daemonize export via pm2--interval- an interval of backups in seconds (works when daemonized,300by default)--undaemonize- deletes pm2 process and removes given export settings from the list of mongo-git-backup instances
Example:
mongo-git-backup export --db=test --repo=git@github.com:finom/mongo-git-backup.git --branch=test --daemonizeTo run the tool on startup:
- Daemonize it first.
- Check is
mongo-git-backuprun by typingpm2 lsin terminal. - Run
pm2 saveto save process list. - Run
pm2 startupto resurrect the saved process list on startup.
See PM2 documentation for more info.
mongo-git-backup import options
--db- DB name you want to restore (required)--repo- a Git repository where backup is stored (required)--branch- a branch of the Git repository (optional,masterby default)--checkout- switches to a specified commit or git tag (optional)
Example:
mongo-git-backup import --db=test --repo=git@github.com:finom/mongo-git-backup.git --branch=test --checkout=tags/fooTip: add this command to NPM scripts to run it easier.
API
There are two functions exported: exportToGit and importFromGit. Both functions return promise. The list of arguments is the same as for CLI.
const { exportToGit, importFromGit } = require('mongo-git-backup');
const options = {
db: 'test',
repo: 'git@github.com:finom/mongo-git-backup.git',
branch: 'test'
}
exportToGit(options).then(() => importFromGit(options));