MongoDbUtils
!Current version 0.1.2 is in Beta - for a safer version use 0.0.9
A little gem that simplifies backing up and copying your mongo dbs.
You can run as a script (eg for cron jobs, or in interactive mode):
It saves your database urls so any task is just a few clicks.
- backup a database locally
- backup a database and deploy it to Amazon S3
- copy a database from one server to another (whilst backing up locally the target db if it exists)
Installation
You need to have mongodump and mongorestore on your path.
gem install 'mongo-db-utils'
And then execute:
$ mongo-db-utils console
Limitatons
ruby >= 1.9.3
Usage
Once you launch the console it'll provide you with a set of options - pretty self explanatory.
When it does backups it stores them in ~/.mongo-db-utils/backups/
. The naming convention is ${server}_${port}/${database_name}/${timestamp}/db
Testing
bundle exec rspec spec
#cucumber can't handle interactive CLIs so need to wait on this.
#bundle exec cucumber features
Building source
#run console
bundle exec bin/mongo-db-utils console path_to/config.yml (optional - it defaults to ~/.mongo-db-utils/config.yml)
#install the gem locally
rake build
gem install pkg/mongo-db-utils.gem
Release Notes
0.1.4 - Upcoming
- Changed db model so that it only persists the uri (smaller yml files)
0.1.3 - BETA
- Added :drop flag for Import tool
0.1.2 - BETA
- Added 'host' and 'port' getters to Db AND 'hosts' getter to ReplicaSetDb
0.1.1 - BETA
- Tidy up Tools - add Import and Restore to tool set
0.1.0 - BETA
- Fixed CLI backup and backup_s3 not using the config-loader correctly.
0.0.9.3 - BETA!
- Fixed config-loader require bug
0.0.9.2 - BETA! Warning - there was an error with config loader in this version use 0.0.9.3 instead.
- Added support for Replica Sets
- console can be run pointing to any config file:
console myconfig.yml
- More specs
- Added local mongo environment to simplify testing @see: integration-test-env
0.0.9 - First release
- Copy mongo dbs
- Back up to S3