How to clone a database from Heroku to your development environment

March 2, 2023 (1y ago)

Read on Dev.to →

As a software engineer, you may need to work with a database in your local development environment that is a replica of the production database. While this can be extremely useful for testing and debugging, it's important to remember that production databases contain sensitive information that should be handled with care. As a best practice, it's always recommended to have a redacted version of the production database that doesn't include any sensitive information such as user data or passwords.

Manipulating data directly from the production database can be risky and should be avoided whenever possible. Instead, creating a clone of the database from Heroku to your local environment can provide you with a safe and isolated environment to work in. In this article, we'll go over the steps to clone a database from Heroku to your local development environment, using Docker:

heroku pg:backups:capture --app [APP_NAME]
heroku pg:backups:download --app [APP_NAME]

The first command captures the current database and the second command downloads it to your local machine.

docker exec -i [DOCKER_CONTAINER_NAME] psql -U [DATABASE_USER] -d [DATABASE_NAME] < [LOCAL_FILE_PATH]

[DOCKER_CONTAINER_NAME] is the name of the Docker container you just created, [DATABASE_USER] is the username for the database you want to import the Heroku database to, [DATABASE_NAME] is the name of the database you want to import the Heroku database to, and [LOCAL_FILE_PATH] is the path to the file you downloaded from Heroku.

psql -U [DATABASE_USER] -d [DATABASE_NAME]

You should now be able to see the tables and data from the Heroku database in your Docker container.

That's it! You have successfully cloned a database from Heroku to your development environment in Docker. Remember to take caution when manipulating data from the production database and always make sure to keep a redacted version of it.

Comments (1)

Add Comment
Sloan the DEV Moderator
Sloan the DEV Moderator@sloanMarch 3, 2023 (1y ago)

Hey, this article seems like it may have been generated with the assistance of ChatGPT.

We allow our community members to use AI assistance when writing articles as long as they abide by our guidelines. Could you review the guidelines and edit your post to add a disclaimer?