It’s right there in the docs but I didn’t notice it until recently:
heroku pgbackups:restore DATABASE `heroku pgbackups:url --remote production` --remote staging
Boom! It transfers the production Postgres database to staging.
It’s much faster than db:pull, then db:push, which is what I used to do (like a sucker).
Setup:
git remote add staging git@heroku.com:my-staging-app.git
git remote add production git@heroku.com:my-production-app.git
heroku addons:add pgbackups --remote staging
heroku addons:add pgbackups --remote production
Create a database backup at any time:
heroku pgbackups:capture --remote production
View backups:
heroku pgbackups --remote production
Destroy a backup:
heroku pgbackups:destroy b003 --remote production