How to fork a Heroku database and attach it to a review app

⚠️ TL:DR; Only do this if you have already forked your database:

# Destroy initial database add-on attached to review app
# You can also pass the `--confirm <REVIEW_APP_NAME>` flag to skip the deletion confirmation. 
# WARNING: Do this only if you're VERY sure you're deleting the right database.
heroku addons:destroy DATABASE --app <REVIEW_APP_NAME>

# Attach your forked database to the review app
heroku addons:attach <FORKED_DATABASE_NAME> --app <REVIEW_APP_NAME> --as DATABASE

If not, read the full guide below.


Here’s how to attach a forked database to a review app in Heroku.

1. Check if the database can be forked

You can’t fork a database for a short period of time if it has just been forked recently. But, this shouldn’t be an issue if you’re planning to fork your production database which is the usual case.

You can use either of the commands below to check if your database can be forked.

heroku pg:info -a <YOUR_APP_NAME>

# or

heroku pg:info <NAME_OR_URL_OF_DATABASE_TO_BE_FORKED>

The Fork/Follow status should show Available if the database can be forked.

2. Fork the database

You can use the Heroku CLI to fork the database. In the example below, I’m using the heroku-postgresql addon with a standard-0 plan for my database

heroku addons:create heroku-postgresql:standard-0 --fork <NAME_OR_URL_OF_DATABASE_TO_BE_FORKED> --app <YOUR_APP_NAME>

You can also use the Heroku dashboard:

1) Go to Heroku Data.

2) Select the database you want to fork.

3) Go to Settings

4) Click on Fork Database..

5) Select the pricing plan for your database and click on Fork Database. I recommend using the same plan for your fork for more accurate testing results.

You can read more about Heroku’s Postgres addon here.

3. Wait for the fork to be previsioned

You can check the Heroku dashboard or run:

heroku pg:wait <FORKED_DATABASE_NAME>

to check if the fork is done provisioning.

4. Create your review app

Create a review app from the branch or PR you’re working if you haven’t already: Creating Heroku review apps

5. Destroy the initial DATABASE addon for your review app

Your review app should come with a initial DATABASE addon. Since you want to attach your forked database to the review app, you no longer need this initial database addon.

You can destroy the addon with:

# You should see a confirmation step before the initial database is destroyed.
heroku addons:destroy DATABASE --app <REVIEW_APP_NAME>

Or, you can do it in the review app dashboard:

1) Go to your review app’s dashboard.

2) Click on Resources.

3) Click on the up and down arrow icon next to your database addon (in my case, it’s Heroku Postgres).

4) Click on Delete Add-on.

Again, make sure you’re in the right page and deleting the right database.

6. Attach the forked database to your review app

You can attach the forked database with the CLI via:

heroku addons:attach <FORKED_DATABASE_NAME> --app <REVIEW_APP_NAME> --as DATABASE

The command above attaches the forked database to your review app, while setting the DATABASE environment variable to point to your forked database.

And you’re done!