web-dev-qa-db-fra.com

Comment vider une base de données Heroku

Je travaille sur un Ruby sur Rails 3 webapp sur Heroku. Comment vider la base de données?

346
user591338

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 qui ne contient rien:

$ heroku run rake db:migrate  

Pour renseigner la base de données avec vos données de départ:

$ heroku run rake db:seed

---OU---

Vous pouvez combiner les deux derniers ( migrate & seed ) en une seule action en exécutant ceci:

$ heroku run rake db:setup

Modifier 2014-04-18: rake db:setup ne fonctionne pas avec Rails 4, il échoue avec un Couldn't create database error.

Modifier 2014-10-09: Vous pouvez utiliser rake db:setup avec Rails 4. Cela vous donne un Couldn't create database error (car la base de données a déjà été créée à l'aide de la commande heroku pg:reset). Mais il charge également votre schéma de base de données et vos semences après le message d'erreur.

Vous pouvez le faire avec à peu près n'importe quelle commande de rake, mais il y a des exceptions. Par exemple, db:reset ne fonctionne pas avec heroku run rake. Vous devez utiliser pg:reset à la place.

Plus d'informations peuvent être trouvées dans la documentation de Heroku:

Exécution des commandes de rake

Réinitialiser la base de données Postgres

677
Shaun

Heroku a déconseillé d'utiliser l'option --db, aussi utilisez maintenant:

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

C'est un peu déroutant parce que vous utilisez le texte littéral SHARED_DATABASE mais là 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
96
Dave Sag

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 ensemencer la base de données:

$ heroku run rake db:seed

**Dernière étape

$ heroku restart
63
George Yacoub

Le courant, c'est à dire. 2017 façon de faire cela est:

heroku pg:reset DATABASE

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

42
superluminary

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 courir

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
13
Syed Ehtsham Abbas

J'ai contacté l'assistance de Heroku, et ils ont confirmé qu'il s'agissait d'un bogue avec la dernière gemme (j'utilise heroku-2.26.2)

Charlie - nous sommes conscients de ce problème avec le joyau 'heroku' et nous travaillons à le résoudre.

Voici le problème si vous souhaitez suivre - https://github.com/heroku/heroku/issues/356

Rétrograder à une version antérieure du joyau "heroku" devrait aider. J'ai utilisé v2.25.0 pour la plupart d'aujourd'hui sans problème.

Déclassement à l'aide des commandes suivantes:

gem uninstall heroku

gem install heroku --version 2.25.0

Si vous avez déjà plusieurs gemmes installées, 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!

11
superhighfives

La réponse complète est (pour les utilisateurs avec plusieurs bases de données):

heroku pg: info - quelles sorties

=== HEROKU_POSTGRESQL_RED <- c'est une base de données
Plan Basic
Statut disponible

heroku pg: réinitialiser HEROKU_POSTGRESQL_RED --confirm app_name

Plus d'informations dans: https://devcenter.heroku.com/articles/heroku-postgresql

9
Alvin K.

Maintenant, c'est différent avec Heroku. Essayez: heroku pg: réinitialiser DATABASE --confirm

8
jstnno

Aujourd'hui la commande

heroku pg:reset --db SHARED_DATABASE_URL

ne travaille pas pour les plans partagés, je résous en utilisant

heroku pg:reset SHARED_DATABASE
7
mmarqueti

Désormais, il est également possible de réinitialiser la base de données via leur interface Web.

Allez à 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, puis vous pourrez réinitialiser la base de données.

Reset Heroku Database

6
Luís Ramalho

Connectez-vous à votre base de données à l'aide de heroku pg:psql et entrez les commandes suivantes:

drop schema public cascade;
create schema public;
6
manish_s

Vérifiez votre version de heroku. Je viens de mettre à jour le mien à 2.29.0, comme suit:

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

Maintenant vous pouvez lancer:

heroku pg:reset DATABASE --confirm YOUR_APP_NAME

Créez ensuite votre base de données et semez-la en une seule commande:

heroku run rake db:setup

Maintenant, redémarrez et essayez votre application:

heroku restart
heroku open
5
Flavio Wuensche

Si vous préférez utiliser le site Web Heroku:

  1. Allez à https://postgres.heroku.com/databases
  2. Sélectionnez la base de données que vous souhaitez réinitialiser
  3. Cliquez sur un bouton de configuration dans le coin supérieur droit
  4. Cliquez sur "Réinitialiser la base de données" comme indiqué ci-dessous:
  5. tapez "RESET" et appuyez sur ok

heroku database reset

3
KIO

C'est ce qui a fonctionné pour moi.

1.clear db.

heroku pg:reset --app YOUR_APP

Après avoir exécuté cela, vous devrez taper à nouveau le nom de votre application pour confirmer.

2.migrer db pour recréer.

heroku run rake db:migrate  --app YOUR_APP

3.ajouter des données de base à la base de données.

heroku run rake db:seed --app YOUR_APP
3
Ronny Kibet

En supposant que vous souhaitiez réinitialiser votre base de données PostgreSQL et la configurer, utilisez:

heroku apps

lister vos applications sur Heroku. Recherchez le nom de votre application actuelle (application_name). Puis courir

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 devriez exécuter

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

Si vous êtes connecté à partir de la console, cela fonctionnera dans la dernière ceinture à outils de heroku,

heroku pg: reset --confirm nom-base-de-données

1
Charles Skariah

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 obligatoire, mais le terminal me demande toujours de faire cette commande.

Après cette commande, vous aurez une base de données pure, sans structure ni matériel, après quoi vous pourrez exécuter

heroku run rake db:schema:load -r heroku

ou

heroku run rake db:migrate -r heroku
0
Dmitriy Gusev

Je fais toujours cela avec le one-liner 'heroku pg: reset DATABASE'.

0
Mark Locklear