Réponses:
Pour supprimer la base de données, si vous utilisez SHARED_DATABASE_URL
:
$ heroku pg:reset DATABASE_URL
Maintenant, pour recréer la base de données sans rien:
$ heroku run rake db:migrate
Pour remplir la base de données avec vos données de départ:
$ heroku run rake db:seed
---OU---
Vous pouvez combiner les deux derniers ( migrer et amorcer ) en une seule action en exécutant ceci:
$ heroku run rake db:setup
Edit 18/04/2014: rake db:setup
ne fonctionne pas avec Rails 4, il échoue avec unCouldn't create database error
.
Edit 2014-10-09: Vous pouvez utiliser rake db:setup
avec Rails 4. Cela vous donne une Couldn't create database
erreur (car la base de données a déjà été créée à l'aide de la heroku pg:reset
commande). Mais il charge également votre schéma de base de données et vos graines après le message d'erreur.
Vous pouvez le faire avec à peu près n'importe quelle commande rake, mais il existe des exceptions. Par exemple, db:reset
ne fonctionne pas via heroku run rake
. Vous devez utiliserpg:reset
place.
Plus d'informations peuvent être trouvées dans la documentation de Heroku:
SHARED_DATABASE_URL is deprecated, please use SHARED_DATABASE
heroku pg:reset DATABASE
heroku pg:reset DATABASE --confirm appname
Heroku a déprécié l' --db
option maintenant, alors maintenant utilisez:
heroku pg:reset DATABASE_URL --confirm {the name of your app}
C'est un peu déroutant car vous utilisez le texte littéral SHARED_DATABASE
mais où j'ai écrit {the name of your app}
remplacez le nom de votre application. Par exemple, si votre application s'appelle my_great_app, vous utilisez:
heroku pg:reset DATABASE_URL --confirm my_great_app
SHARED_DATABASE
Pour supprimer la base de données:
$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP
Pour recréer la base de données:
$ heroku run rake db:migrate
Pour amorcer la base de données:
$ heroku run rake db:seed
**Dernière étape
$ heroku restart
heroku run rake db:migrate
ne recrée plus la base de données
Le courant, c'est-à-dire. Voici comment 2017:
heroku pg:reset DATABASE
https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset
heroku run rake db:migrate db:seed
Maintenant, la commande est
heroku pg:reset DATABASE_URL --confirm your_app_name
de cette façon, vous pouvez spécifier la base de données de l'application que vous souhaitez réinitialiser. Ensuite, vous pouvez exécuter
heroku run rake db:migrate
heroku run rake db:seed
ou direct pour les deux commandes ci-dessus
heroku run rake db:setup
Et maintenant, dernière étape pour redémarrer votre application
heroku restart
J'ai contacté le support Heroku, et ils ont confirmé qu'il s'agit d'un bug avec la dernière gemme (j'utilise heroku-2.26.2)
Charlie - nous sommes conscients de ce problème avec la gemme «heroku» et travaillons pour le résoudre.
Voici le problème si vous souhaitez suivre - https://github.com/heroku/heroku/issues/356
La rétrogradation vers une version antérieure de la gemme «heroku» devrait aider. J'ai utilisé la v2.25.0 pendant la majeure partie de la journée sans problème.
Rétrograder avec les commandes suivantes:
gem uninstall heroku
gem install heroku --version 2.25.0
Si vous avez déjà installé plusieurs gemmes, il se peut que l'on vous présente:
Select gem to uninstall: 1. heroku-2.25.0 2. heroku-2.26.2 3. All versions
Désinstallez simplement # 2 et relancez la commande. Joie!
Le complet réponse est (pour les utilisateurs multi-db):
heroku pg: info - qui sort
=== HEROKU_POSTGRESQL_RED <- c'est le statut de
base du plan DB
disponible
heroku pg: reset HEROKU_POSTGRESQL_RED --confirm app_name
Plus d'informations sur: https://devcenter.heroku.com/articles/heroku-postgresql
Maintenant, il est également possible de réinitialiser la base de données via leur interface Web.
Accédez à dashboard.heroku.com, sélectionnez votre application, puis vous trouverez la base de données dans la catégorie des modules complémentaires, cliquez dessus et vous pourrez réinitialiser la base de données.
Vérifiez votre version de Heroku. Je viens de mettre à jour le mien vers 2.29.0, comme suit:
heroku --version
#=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3
Vous pouvez maintenant exécuter:
heroku pg:reset DATABASE --confirm YOUR_APP_NAME
Créez ensuite votre base de données et insérez-la dans une seule commande:
heroku run rake db:setup
Maintenant, redémarrez et essayez votre application:
heroku restart
heroku open
C'est ce qui a fonctionné pour moi.
1. clair db.
heroku pg:reset --app YOUR_APP
Après avoir exécuté cela, vous devrez saisir à nouveau le nom de votre application pour confirmer.
2. migrez db pour recréer.
heroku run rake db:migrate --app YOUR_APP
3. ajoutez les données de départ à db.
heroku run rake db:seed --app YOUR_APP
Si vous préférez utiliser le site Web Heroku:
En supposant que vous souhaitiez réinitialiser votre base de données PostgreSQL et la reconstituer, utilisez:
heroku apps
pour lister vos applications sur Heroku. Recherchez le nom de votre application actuelle ( application_name
). Ensuite, exécutez
heroku config | grep POSTGRESQL
pour obtenir le nom de vos bases de données. Un exemple pourrait être
HEROKU_POSTGRESQL_WHITE_URL
Enfin, étant donné application_name
et database_url
, vous devez exécuter
heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart
Si vous êtes connecté à partir de la console, cela fera le travail dans la dernière ceinture d'outils Heroku,
heroku pg: reset --confirm nom-base de données
Je fais toujours cela avec le one-liner 'heroku pg: reset DATABASE'.
La meilleure solution pour votre problème sera
heroku pg:reset -r heroku --confirm your_heroku_app_name
--confirmez votre_nom_heroku_app
n'est pas requis, mais le terminal me demande toujours d'exécuter cette commande.
Après cette commande, vous aurez une base de données pure, sans structure ni éléments, après quoi vous pourrez exécuter
heroku run rake db:schema:load -r heroku
ou
heroku run rake db:migrate -r heroku