Cómo vaciar DB en heroku

Estoy trabajando en una aplicación web RoR3 en heroku. ¿Cómo vacío la base de datos?

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 

Para llenar la base de datos con sus datos de inicialización:

 $ heroku run rake db:seed 

—O—

Puede combinar los dos últimos ( migrar y sembrar ) 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: Puede usar rake db:setup con Rails 4. Le da un error Couldn't create database (porque la base de datos ya se creó usando el heroku pg:reset ). Pero también carga su esquema de base de datos y sus semillas después del mensaje de error.

Puedes hacer esto prácticamente con cualquier comando de rake, pero hay excepciones. Por ejemplo, db:reset no funciona a través de heroku run rake . Tienes que usar pg:reset lugar.

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

Ejecutando comandos de Rake

Restablecer DB de Postgres

Heroku ha --db opción --db ahora, así que ahora usa:

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

Es un poco confuso porque usas el texto literal SHARED_DATABASE pero donde escribí {the name of your app} sustituyo el nombre de tu aplicación. Por ejemplo, si su aplicación se llama my_great_app, entonces usa:

 heroku pg:reset DATABASE_URL --confirm my_great_app 

Para soltar 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 

**Último paso

 $ heroku restart 

La stream, es decir. La manera 2017 de hacer esto es:

 heroku pg:reset DATABASE 

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

Ahora el comando es

 heroku pg:reset DATABASE_URL --confirm your_app_name 

de esta manera puede especificar qué db de la aplicación desea restablecer. Entonces puedes correr

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

o directo para ambos comandos anteriores

 heroku run rake db:setup 

Y ahora el último paso para reiniciar su aplicación

 heroku restart 

Contacté con el soporte técnico de Heroku, y me confirmaron que es un error con la última joya (estoy usando heroku-2.26.2)

Charlie: somos conscientes de este problema con la gem ‘heroku’ y estamos trabajando para solucionarlo.

Este es el problema si le interesa seguir – https://github.com/heroku/heroku/issues/356

La degradación a una versión anterior de la gem ‘heroku’ debería ayudar. He estado usando v2.25.0 durante la mayor parte de hoy sin problemas.

Downgrade con los siguientes comandos:

 gem uninstall heroku gem install heroku --version 2.25.0 

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

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

Simplemente desinstala # 2 y vuelve a ejecutar el comando. ¡Alegría!

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

heroku pg: información – qué salidas

=== HEROKU_POSTGRESQL_RED < - esto es DB
Plan básico
Estado disponible

heroku pg: restablecer HEROKU_POSTGRESQL_RED –confirm nombre_aplicación

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

Ahora es diferente con heroku. Prueba: heroku pg: reset DATABASE –confirm

Hoy el comando

 heroku pg:reset --db SHARED_DATABASE_URL 

no funciona para planes compartidos, estoy resuelto a usar

 heroku pg:reset SHARED_DATABASE 

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

 drop schema public cascade; create schema public; 

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

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

Restablecer la base de datos Heroku

Verifica tu versión 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 siembra en un solo comando:

 heroku run rake db:setup 

Ahora reinicie y pruebe su aplicación:

 heroku restart heroku open 

Esto es lo que funcionó para mí.

1.clear db.

 heroku pg:reset --app YOUR_APP 

Después de ejecutarlo, tendrá que escribir el nombre de su aplicación nuevamente para confirmar.

2.migrar db para recrear.

 heroku run rake db:migrate --app YOUR_APP 

3.añadir datos de inicialización a db.

 heroku run rake db:seed --app YOUR_APP 

Suponiendo que desea restablecer su base de datos PostgreSQL y configurar una copia de seguridad, use:

 heroku apps 

para enumerar sus aplicaciones en Heroku. Encuentra el nombre de tu aplicación actual ( application_name ). Entonces corre

 heroku config | grep POSTGRESQL 

para obtener el nombre de tus bases de datos Un ejemplo podría ser

 HEROKU_POSTGRESQL_WHITE_URL 

Finalmente, dado application_name y database_url , debe ejecutar

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

En caso de que prefiera utilizar 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. escribe “RESET” y presiona ok

Restablecimiento de base

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

heroku pg: reset –confirmar el nombre de la base de datos

Siempre hago esto con el one-liner ‘heroku pg: reset DATABASE’.

La mejor solución para su problema será

 heroku pg:reset -r heroku --confirm your_heroku_app_name 

–confirme su_heroku_app_name

no es obligatorio, pero la terminal siempre me pide que haga ese comando.

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

 heroku run rake db:schema:load -r heroku 

o

 heroku run rake db:migrate -r heroku