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?
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:
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
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
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
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
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!
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
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
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
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;
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.
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
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
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
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:
- Ir a https://postgres.heroku.com/databases
- Seleccione la base de datos que desea restablecer
- Haga clic en un botón de configuración en la esquina superior derecha
- Haga clic en" Restablecer base de datos " como se muestra a continuación:
- escriba "RESET" y presione ok
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
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'.
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
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