Respuestas:
Para descartar la base de datos, si está utilizando SHARED_DATABASE_URL
:
$ heroku pg:reset DATABASE_URL
Ahora para recrear la base de datos sin nada:
$ heroku run rake db:migrate
Para rellenar la base de datos con sus datos semilla:
$ heroku run rake db:seed
---O---
Puede combinar los dos últimos ( migrar y inicializar ) en una sola acción ejecutando esto:
$ heroku run rake db:setup
Editar 2014-04-18:rake db:setup
no funciona con Rails 4, falla con a Couldn't create database error
.
Editar 2014-10-09: Puede usar rake db:setup
con Rails 4. Le da un Couldn't create database
error (porque la base de datos ya se creó usando elheroku pg:reset
comando). 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 de rastrillo, pero hay excepciones. Por ejemplo, db:reset
no funciona a través de heroku run rake
. Tienes que usarpg:reset
en lugar.
Se puede encontrar más información en la documentación de Heroku:
SHARED_DATABASE_URL is deprecated, please use SHARED_DATABASE
heroku pg:reset DATABASE
heroku pg:reset DATABASE --confirm appname
Heroku ha desaprobado la --db
opción ahora, así que ahora usa:
heroku pg:reset DATABASE_URL --confirm {the name of your app}
Es un poco confuso porque usa el texto literal, SHARED_DATABASE
pero donde lo he escrito {the name of your app}
sustituya el nombre de su aplicación. Por ejemplo, si su aplicación se llama my_great_app, entonces usa:
heroku pg:reset DATABASE_URL --confirm my_great_app
SHARED_DATABASE
Para descartar 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
heroku run rake db:migrate
ya no recrea la base de datos
El actual, es decir. La forma de hacer esto en 2017 es:
heroku pg:reset DATABASE
https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset
heroku run rake db:migrate db:seed
Ahora el comando es
heroku pg:reset DATABASE_URL --confirm your_app_name
de esta manera puede especificar qué base de datos de la aplicación desea restablecer. Entonces puedes correr
heroku run rake db:migrate
heroku run rake db:seed
o directo para los dos comandos anteriores
heroku run rake db:setup
Y ahora paso final para reiniciar tu aplicación
heroku restart
Me puse en contacto con el soporte de Heroku, y 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 solucionarlo.
Este es el problema si desea seguirlo: https://github.com/heroku/heroku/issues/356
La degradación a una versión anterior de la gema 'heroku' debería ayudar. He estado usando v2.25.0 durante la mayor parte de hoy sin problemas.
Baje 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 el n. ° 2 y vuelva a ejecutar el comando. ¡Alegría!
La respuesta completa es (para usuarios con multi-db):
heroku pg: info - que produce
=== HEROKU_POSTGRESQL_RED <- este es el estado
básico del plan DB
disponible
heroku pg: restablecer HEROKU_POSTGRESQL_RED --confirmar nombre_aplicación
Más información encontrada en: https://devcenter.heroku.com/articles/heroku-postgresql
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.
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 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.bd claro.
heroku pg:reset --app YOUR_APP
Después de ejecutarlo, deberá volver a escribir el nombre de su aplicación para confirmar.
2.migrate db para recrear.
heroku run rake db:migrate --app YOUR_APP
3.Agregar datos semilla a db.
heroku run rake db:seed --app YOUR_APP
En caso de que prefiera usar el sitio web de Heroku:
Suponiendo que desea restablecer su base de datos PostgreSQL y volver a configurarla, 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 sus bases de datos. Un ejemplo podría ser
HEROKU_POSTGRESQL_WHITE_URL
Finalmente, dado application_name
y database_url
, deberías correr
heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart
Si ha iniciado sesión desde la consola, esto hará el trabajo en el último cinturón de herramientas heroku,
heroku pg: reset --confirma nombre-base de datos
Siempre hago esto con la frase 'heroku pg: reset DATABASE'.
La mejor solución para su problema será
heroku pg:reset -r heroku --confirm your_heroku_app_name
--confirme your_heroku_app_name
no es obligatorio, pero el terminal siempre me pide que haga ese comando.
Después de ese comando, tendrá db puro, sin estructura y demás, después de eso puede ejecutar
heroku run rake db:schema:load -r heroku
o
heroku run rake db:migrate -r heroku