How to empty a Heroku database

Ruby on-Rails-3Heroku

Ruby on-Rails-3 Problem Overview


I'm working on a Ruby on Rails 3 webapp on Heroku. How do I empty the database?

Ruby on-Rails-3 Solutions


Solution 1 - Ruby on-Rails-3

To drop the database, if you are using SHARED_DATABASE_URL:

$ heroku pg:reset DATABASE_URL

Now to recreate the database with nothing in it:

$ heroku run rake db:migrate  

To populate the database with your seed data:

$ heroku run rake db:seed

---OR---

You can combine the last two (migrate & seed) into one action by executing this:

$ heroku run rake db:setup

Edit 2014-04-18: rake db:setup doesn't work with Rails 4, it fails with a Couldn't create database error.

Edit 2014-10-09: You can use rake db:setup with Rails 4. It does give you a Couldn't create database error (because the database was already created using the heroku pg:reset command). But it also loads your database schema and your seeds after the error message.

You can do this with pretty much any rake command, but there are exceptions. For example, db:reset doesn't work via heroku run rake. You have to use pg:reset instead.

More information can be found in Heroku's documentation:

[Running Rake Commands][1]

[Reset Postgres DB][2]

[1]: https://devcenter.heroku.com/articles/rake "Heroku | Running rake commands" [2]: https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset "Heroku | Reset Postgres DB"

Solution 2 - Ruby on-Rails-3

Heroku has deprecated the --db option now, so now use:

heroku pg:reset DATABASE_URL --confirm {the name of your app}

It's a little confusing because you use the literal text SHARED_DATABASE but where I have written {the name of your app} substitute the name of your app. For example, if your app is called my_great_app then you use:

heroku pg:reset DATABASE_URL --confirm my_great_app

Solution 3 - Ruby on-Rails-3

To drop the database:

$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP

To recreate the database:

$ heroku run rake db:migrate

To seed the database:

$ heroku run rake db:seed

**Final step

$ heroku restart

Solution 4 - Ruby on-Rails-3

The current, ie. 2017 way to do this is:

heroku pg:reset DATABASE

<https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset>

Solution 5 - Ruby on-Rails-3

Now the command is

heroku pg:reset DATABASE_URL --confirm your_app_name

this way you can specify which app's db you want to reset. Then you can run

heroku run rake db:migrate 
heroku run rake db:seed 

or direct for both above commands

heroku run rake db:setup 

And now final step to restart your app

heroku restart

Solution 6 - Ruby on-Rails-3

I contacted Heroku support, and they confirmed that it is a bug with the latest gem (I am using heroku-2.26.2)

> Charlie - we are aware of this issue with the 'heroku' gem and are > working to fix it.

> Here's the issue if you care to follow-along - > https://github.com/heroku/heroku/issues/356

> Downgrading to an earlier version of the 'heroku' gem should help. I've been using v2.25.0 for most of today without issue.

Downgrade with the following commands:

gem uninstall heroku

gem install heroku --version 2.25.0

If you already have multiple gems installed, you may be presented with:

> Select gem to uninstall: > 1. heroku-2.25.0 > 2. heroku-2.26.2 > 3. All versions

Just uninstall #2 and rerun the command. Joy!

Solution 7 - Ruby on-Rails-3

The complete answer is (for users with multi-db):

heroku pg:info - which outputs

> === HEROKU_POSTGRESQL_RED <-- this is DB
> Plan Basic
> Status available

heroku pg:reset HEROKU_POSTGRESQL_RED --confirm app_name

More information found in: https://devcenter.heroku.com/articles/heroku-postgresql

Solution 8 - Ruby on-Rails-3

Now it's diffrent with heroku. Try: heroku pg:reset DATABASE --confirm

Solution 9 - Ruby on-Rails-3

Now it's also possible to reset the database through their web interface.

Go to dashboard.heroku.com select your app and then you'll find the database under the add-ons category, click on it and then you can reset the database.

Reset Heroku Database

Solution 10 - Ruby on-Rails-3

Today the command

heroku pg:reset --db SHARED_DATABASE_URL

not working for shared plans, I'm resolve using

heroku pg:reset SHARED_DATABASE

Solution 11 - Ruby on-Rails-3

Check your heroku version. I just updated mine to 2.29.0, as follows:

heroku --version
#=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3

Now you can run:

heroku pg:reset DATABASE --confirm YOUR_APP_NAME

Then create your database and seed it in a single command:

heroku run rake db:setup

Now restart and try your app:

heroku restart
heroku open

Solution 12 - Ruby on-Rails-3

Login to your DB using heroku pg:psql and type the following commands:

drop schema public cascade;
create schema public;

Solution 13 - Ruby on-Rails-3

In case you prefer to use Heroku Web-site:

  1. Go to https://postgres.heroku.com/databases
  2. Select the database you want to reset
  3. Click on a settings button in the right upper corner
  4. Click "Reset Database" as shown below:
  5. type in "RESET" and press ok

heroku database reset

Solution 14 - Ruby on-Rails-3

This is what worked for me.

1.clear db.

heroku pg:reset --app YOUR_APP

After running that you will have to type in your app name again to confirm.

2.migrate db to recreate.

heroku run rake db:migrate  --app YOUR_APP

3.add seed data to db.

heroku run rake db:seed --app YOUR_APP

Solution 15 - Ruby on-Rails-3

Assuming you want to reset your PostgreSQL database and set it back up, use:

heroku apps

to list your applications on Heroku. Find the name of your current application (application_name). Then run

heroku config | grep POSTGRESQL

to get the name of your databases. An example could be

HEROKU_POSTGRESQL_WHITE_URL

Finally, given application_name and database_url, you should run

heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart

Solution 16 - Ruby on-Rails-3

If you are logged in from the console, this will do the job in the latest heroku toolbelt,

heroku pg:reset --confirm database-name

Solution 17 - Ruby on-Rails-3

I always do this with the one-liner 'heroku pg:reset DATABASE'.

Solution 18 - Ruby on-Rails-3

Best solution for you issue will be

heroku pg:reset -r heroku  --confirm your_heroku_app_name

> --confirm your_heroku_app_name

is not required, but terminal always ask me do that command.

After that command you will be have pure db, without structure and stuff, after that you can run

heroku run rake db:schema:load -r heroku

or

heroku run rake db:migrate -r heroku

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser591338View Question on Stackoverflow
Solution 1 - Ruby on-Rails-3ShaunView Answer on Stackoverflow
Solution 2 - Ruby on-Rails-3Dave SagView Answer on Stackoverflow
Solution 3 - Ruby on-Rails-3George YacoubView Answer on Stackoverflow
Solution 4 - Ruby on-Rails-3superluminaryView Answer on Stackoverflow
Solution 5 - Ruby on-Rails-3Syed Ehtsham AbbasView Answer on Stackoverflow
Solution 6 - Ruby on-Rails-3superhighfivesView Answer on Stackoverflow
Solution 7 - Ruby on-Rails-3Alvin K.View Answer on Stackoverflow
Solution 8 - Ruby on-Rails-3jstnnoView Answer on Stackoverflow
Solution 9 - Ruby on-Rails-3Luís RamalhoView Answer on Stackoverflow
Solution 10 - Ruby on-Rails-3mmarquetiView Answer on Stackoverflow
Solution 11 - Ruby on-Rails-3Flavio WuenscheView Answer on Stackoverflow
Solution 12 - Ruby on-Rails-3manish_sView Answer on Stackoverflow
Solution 13 - Ruby on-Rails-3KIOView Answer on Stackoverflow
Solution 14 - Ruby on-Rails-3Ronny KView Answer on Stackoverflow
Solution 15 - Ruby on-Rails-3RileyEView Answer on Stackoverflow
Solution 16 - Ruby on-Rails-3Charles SkariahView Answer on Stackoverflow
Solution 17 - Ruby on-Rails-3Mark LocklearView Answer on Stackoverflow
Solution 18 - Ruby on-Rails-3Dmitriy GusevView Answer on Stackoverflow