Heroku plugin to add mongo:pull and push commands – modified to make use of MongoLab, too.
Switch branches/tags
Nothing to show
Clone or download
#1 Compare This branch is 19 commits ahead, 6 commits behind pedro:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Heroku - Mongo Sync

This is a plugin for the Heroku command line, adding commands to sync your local and production mongo databases.

It was tested and should just work with Mongolab or Mongo HQ. If you host your mongo db somewhere else, just make sure you have access from your local machine.

About this fork

Thanks to pedro for creating the plugin, and for bitzesty for improving it. This fork just adds MongoLab to the mix.


$ heroku plugins:install http://github.com/micahbrich/heroku-mongo-sync.git


The plugin assumes your local mongo db is running on your localhost with the standard settings (port 27017, no auth). It will use a database named after the current Heroku app name.

You can change any of these defining the URL it should connect to, like:

export MONGO_URL = mongodb://user:pass@localhost:1234/db

For production, it will fetch the MONGO_URL, the MONGOLAB_URL, or the MONGOHQ_URL, in that order, from the Heroku app config vars.


Get a copy of your production database with:

$ heroku mongo:pull
Replacing the myapp db at localhost with genesis.mongohq.com
Syncing users (4)... done
Syncing permissions (4)... done
Syncing plans (17)... done

Update your production database with:

$ heroku mongo:push
THIS WILL REPLACE ALL DATA FOR myapp ON genesis.mongohq.com WITH localhost
Are you sure? (y/n) y
Syncing users (4)... done
Syncing permissions (4)... done
Syncing plans (17)... done

As usual, in case you're not inside the app checkout you can specify the app you want to pull/push to:

$ heroku mongo:pull --app myapp-staging

If you're inside a checkout with multiple apps deployed, you can also specify the one to pull/push to by the git remote:

$ heroku mongo:pull --remote staging


Created by Pedro Belo. Support for indexes, users and more added by Ben Wyrosdick.

Use at your own risk.