Cómo vaciar una base de datos de Heroku


Estoy trabajando en una aplicación web Ruby on Rails 3 en Heroku. ¿Cómo vacio la base de datos?

Author: swimfar, 2011-01-27

18 answers

Para eliminar la base de datos, si está utilizando SHARED_DATABASE_URL:

$ heroku pg:reset DATABASE_URL

Ahora para recrear la base de datos sin nada en ella:

$ heroku run rake db:migrate  

A rellene la base de datos con sus datos de semilla:

$ heroku run rake db:seed

---O---

Puede combinar los dos últimos (migrate & seed ) en una acción ejecutando esto:

$ heroku run rake db:setup

Editar 2014-04-18: rake db:setup no funciona con Rails 4, falla con un Couldn't create database error.

Edit 2014-10-09: Usted puede usar rake db:setup con Rails 4. Le da un error Couldn't create database (porque la base de datos ya fue creada usando el comando heroku pg:reset). Pero también carga su esquema de base de datos y sus semillas después del mensaje de error.

Puede hacer esto con casi cualquier comando rake, pero hay excepciones. Por ejemplo, db:reset no funciona a través de heroku run rake. Tienes que usar pg:reset en su lugar.

Se puede encontrar más información en la documentación de Heroku:

Rastrillo para Correr Comandos

Restablecer Postgres DB

 668
Author: Shaun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-25 06:01:48

Heroku ha desaprobado la opción --db ahora, así que ahora use:

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

Es un poco confuso porque usas el texto literal SHARED_DATABASE pero donde he escrito {the name of your app} sustituye el nombre de tu app. Por ejemplo, si tu app se llama my_great_app entonces utilizas:

heroku pg:reset DATABASE_URL --confirm my_great_app
 94
Author: Dave Sag,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-22 07:00:03

Para eliminar la base de datos:

$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP

Para recrear la base de datos:

$ heroku run rake db:migrate

Para sembrar la base de datos:

$ heroku run rake db:seed

* * Paso final

$ heroku restart
 63
Author: George Yacoub,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-24 15:28:05

La corriente, es decir. 2017 forma de hacer esto es:

heroku pg:reset DATABASE

Https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset

 41
Author: superluminary,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-24 11:26:11

Ahora el comando es

heroku pg:reset DATABASE_URL --confirm your_app_name

De esta manera puede especificar la base de datos de la aplicación que desea restablecer. Entonces puedes ejecutar

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

O directamente para ambos comandos anteriores

heroku run rake db:setup 

Y ahora el paso final para reiniciar su aplicación

heroku restart
 12
Author: Syed Ehtsham Abbas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-26 18:04:44

Me puse en contacto con el soporte de Heroku, y me confirmaron que es un error con la última gema (estoy usando heroku-2.26.2)

Charlie-somos conscientes de este problema con la gema' heroku ' y estamos trabajando para arreglarlo.

Este es el problema si te importa seguir adelante - https://github.com/heroku/heroku/issues/356

Bajar a una versión anterior de la gema 'heroku' debería ayudar. He estado usando v2. 25. 0 para la mayor parte de hoy sin cuestión.

Bajar de categoría con los siguientes comandos:

gem uninstall heroku

gem install heroku --version 2.25.0

Si ya tiene varias gemas instaladas, se le puede presentar:

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

Simplemente desinstale #2 y vuelva a ejecutar el comando. ¡Joy!

 11
Author: superhighfives,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-09 03:11:19

La respuesta completa es (para usuarios con multi-db):

Heroku pg: info - que produce

=== HEROKU_POSTGRESQL_RED Plan Básico
Estado disponible

Heroku pg: restablecer HEROKU_POSTGRESQL_RED confirm confirmar app_name

Más información en: https://devcenter.heroku.com/articles/heroku-postgresql

 9
Author: Alvin K.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-26 19:48:53

Ahora es diferente con heroku. Tratar: heroku pg: restablecer BASE DE DATOS confirm confirmar

 8
Author: jstnno,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-10 01:13:56

Hoy el comando

heroku pg:reset --db SHARED_DATABASE_URL

No funciona para planes compartidos, estoy resuelto usando

heroku pg:reset SHARED_DATABASE
 7
Author: mmarqueti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-19 16:51:34

Inicie sesión en su base de datos usando heroku pg:psql y escriba los siguientes comandos:

drop schema public cascade;
create schema public;
 6
Author: manish_s,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-06 15:53:08

Ahora también es posible restablecer la base de datos a través de su interfaz web.

Ir a dashboard.heroku.com seleccione su aplicación y luego encontrará la base de datos en la categoría complementos, haga clic en ella y luego puede restablecer la base de datos.

Restablecer la Base de Datos de Heroku

 6
Author: Luís Ramalho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-17 18:57:15

Comprueba tu versión de heroku. Acabo de actualizar el mío a 2.29.0, de la siguiente manera:

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

Ahora puedes ejecutar:

heroku pg:reset DATABASE --confirm YOUR_APP_NAME

Luego crea tu base de datos y sédala en un solo comando:

heroku run rake db:setup

Ahora reinicia y prueba tu aplicación:

heroku restart
heroku open
 5
Author: Flavio Wuensche,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-03 21:40:48

Esto es lo que funcionó para mí.

1.claro db.

heroku pg:reset --app YOUR_APP

Después de ejecutar que tendrá que escribir el nombre de su aplicación de nuevo para confirmar.

2.migrar la base de datos para recrear.

heroku run rake db:migrate  --app YOUR_APP

3.añadir datos de semilla a la base de datos.

heroku run rake db:seed --app YOUR_APP
 3
Author: Ronny Kibet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-28 20:12:51

Asumiendo que desea restablecer su base de datos PostgreSQL y configurarla, use:

heroku apps

Para listar sus aplicaciones en Heroku. Busque el nombre de su aplicación actual (application_name). A continuación, ejecutar

heroku config | grep POSTGRESQL

Para obtener el nombre de sus bases de datos. Un ejemplo podría ser

HEROKU_POSTGRESQL_WHITE_URL

Finalmente, dados application_name y database_url, debe ejecutar

heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart
 2
Author: RileyE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-29 02:03:55

En caso de que prefiera usar el sitio web de Heroku:

  1. Ir a https://postgres.heroku.com/databases
  2. Seleccione la base de datos que desea restablecer
  3. Haga clic en un botón de configuración en la esquina superior derecha
  4. Haga clic en" Restablecer base de datos " como se muestra a continuación:
  5. escriba "RESET" y presione ok

restablecimiento de la base de datos de heroku

 2
Author: KIO,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-12 10:51:47

Si ha iniciado sesión desde la consola, esto hará el trabajo en el último cinturón de herramientas de heroku,

Heroku pg: reset confirm confirme el nombre de la base de datos

 1
Author: Charles Skariah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-22 20:22:33

Siempre hago esto con el 'heroku pg:reset DATABASE'.

 0
Author: Lumbee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-18 15:22:36

La mejor solución para su problema será

heroku pg:reset -r heroku  --confirm your_heroku_app_name

Confirm confirma tu_heroku_app_name

No es necesario, pero terminal siempre me pide hacer ese comando.

Después de ese comando tendrás db puro, sin estructura y esas cosas, después de eso puedes ejecutar

heroku run rake db:schema:load -r heroku

O

heroku run rake db:migrate -r heroku
 0
Author: Dmitriy Gusev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-03 07:17:06