60

I want to destroy the database but I'm not sure what the command would be. Does anyone know how to do this?

1

4 Answers 4

140

You shouldn't use a postgres command to fully delete your database, as you will not have permissions to create a new one. Instead you should use the heroku command to clear out your database:

heroku pg:reset DATABASE_URL
Sign up to request clarification or add additional context in comments.

5 Comments

What is DATABASE? I can't find the url. Im heroku there is only database name and host, user, pass. What is the database?
@siamii did it just now, the full command is heroku pg: reset DATABASE_URL, DATABASE_URL is an environ config and points to your db url, heroku knows how to read it, so just type it in exactly like that and it works.
If you already did do it the wrong way and lost permission to create a new database, how do you fix that?
A fine comment to protect folks from making a mistake, but not an answer to the question at all.
I would also recommend reading stackoverflow.com/questions/6906715/… heroku pg:reset DATABASE --confirm {app-name} is also a good command to use
35

None of the answers above actually describe how to destroy a Heroku database, which was the original question (and what led me here seeking an answer).

From their docs, either of these will work:

  • heroku addons:destroy heroku-postgresql:tier (where tier is the database tier, like hobby-dev)
  • heroku addons:destroy HEROKU_POSTGRESQL_<COLOR> (if you have more than one database of that tier)

Note that because this is a destructive action it will prompt you to confirm the action. If you want to use this in a script you can skip the prompt with something like this:

heroku addons:destroy HEROKU_POSTGRESQL_<COLOR> --confirm <appname>

Hope that's helpful!

2 Comments

Thanks @john-paul-ashenfelter for the edit suggestion. Not sure why your suggestions were rejected but I've made the changes you suggested.
To create the database again, heroku addons:create heroku-postgresql:tier (where tier is the database tier, like hobby-dev). Have a look at the reference
9

To answer Siamii's question above: DATABASE in heroku pg:reset DATABASE is by default postgres

Comments

7

Simply follow the steps below. Run

heroku pg:reset DATABASE

to recreate the database with nothing in it, then run

heroku run rake db:migrate

to initialize the database with the correct schema & data.

Look at the new heroku documentation it helps ;)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.