Destroying a Postgres DB on Heroku
Asked Answered
K

4

60

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

Khiva answered 1/10, 2011 at 20:5 Comment(1)
possible duplicate of How to empty DB in herokuGilliam
M
139

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
Maidstone answered 2/10, 2011 at 16:53 Comment(5)
What is DATABASE? I can't find the url. Im heroku there is only database name and host, user, pass. What is the database?Shipowner
@Shipowner 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.Footed
If you already did do it the wrong way and lost permission to create a new database, how do you fix that?Urina
A fine comment to protect folks from making a mistake, but not an answer to the question at all.Mintamintage
I would also recommend reading #6907215 heroku pg:reset DATABASE --confirm {app-name} is also a good command to useRhodium
L
34

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!

Lura answered 19/2, 2015 at 16:29 Comment(2)
Thanks @john-paul-ashenfelter for the edit suggestion. Not sure why your suggestions were rejected but I've made the changes you suggested.Lura
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 referenceCandlenut
R
9

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

Retirement answered 2/4, 2013 at 17:36 Comment(0)
P
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 ;)

Predation answered 11/11, 2014 at 21:25 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.