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:
- Install Docker on your local machine if you haven't already done so. You can download Docker from the official website.
- Log in to the Heroku CLI by running heroku login on your terminal.
- Retrieve the name of the Heroku app by running heroku apps.
- Use the following command to export the Heroku database to a file in your local machine:
The first command captures the current database and the second command downloads it to your local machine.
- Create a new Docker container by running docker-compose up -d on your terminal.
- Run the following command to import the Heroku database into your Docker container:
[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.
- Verify that the import was successful by running the following command in your Docker container:
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.