Shell commands for development, staging, and production parity for Heroku apps
Ruby Shell


Shell commands for development, staging, and production parity for Heroku apps.


On OS X, this installs everything you need:

brew tap thoughtbot/formulae
brew install parity

On other systems you can:

  1. Download the package for your system from the releases page
  2. Extract the tarball and place it so that /bin is in your PATH

Parity requires these command-line programs:


On OS X, these programs are installed as Homebrew package dependencies of the parity Homebrew package.


Backup a database:

production backup
staging backup

Restore a production or staging database backup into development:

development restore production
development restore staging

Or, if restore-from reads better to you, it's the same thing:

development restore-from production
development restore-from staging

Push your local development database backup up to staging:

staging restore development

Deploy from master to production and migrate and restart the dynos if necessary:

production deploy

Deploy the current branch to staging or a feature branch and migrate and restart the dynos if necessary:

staging deploy

Note that deploys to non-production environments use git push --force.

Open a console:

production console
staging console

Migrate a database and restart the dynos:

production migrate
staging migrate

Tail a log:

production tail
staging tail

Use redis-cli with your REDIS_URL add-on:

production redis-cli
staging redis-cli

The scripts also pass through, so you can do anything with them that you can do with heroku ______ --remote staging or heroku ______ --remote production:

watch production ps
staging open


Parity expects:

  • A staging remote pointing to the staging Heroku app.
  • A production remote pointing to the production Heroku app.
heroku git:remote -r staging -a your-staging-app
heroku git:remote -r production -a your-production-app
  • There is a config/database.yml file that can be parsed as YAML for ['development']['database'].


If you have Heroku environments beyond staging and production (such as a feature environment for each developer), you can add a binstub to the bin folder of your application. Custom environments share behavior with staging: they can be backed up and can restore from production.

Using feature environments requires including Parity as a gem in your application's Gemfile.

gem "parity"

Here's an example binstub for a 'feature-geoff' environment, hosted at

#!/usr/bin/env ruby

require "parity"

if ARGV.empty?
else"feature-geoff", ARGV).run


Please see for details.


See guidelines in for details


Parity is © 2013-2016 thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.

About thoughtbot


Parity is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.

We are passionate about open source software. See our other projects. We are available for hire.