web-dev-qa-db-fra.com

Comment ratisser db: drop et rake db: create sur Heroku?

Duplicata possible:
Comment vider la base de données dans herok

J'ai une base de données Postgres sur Heroku. C'est l'une des versions bêta gratuites. Localement, lors des tests, je lance souvent rake db: drop rake db: create rake db: migrate pour réinitialiser la base de données.

Cependant, lorsque j'essaie d'exécuter cela sur Heroku, j'obtiens l'erreur:

Couldn't drop mydatabaseid : #<PG::Error: FATAL:  permission denied for database "postgres"
  DETAIL:  User does not have CONNECT privilege.

Euh, ok, alors comment suis-je censé réinitialiser complètement ma base de données, les migrations et tout?

43
Geoff

La commande pg:reset Recréera la base de données pour vous. Exemple d'utilisation:

$ heroku config | grep POSTGRESQL
HEROKU_POSTGRESQL_RED_URL: postgres://somedatabaseurl
$ heroku pg:reset HEROKU_POSTGRESQL_RED_URL
!    WARNING: Destructive Action
!    This command will affect the app: myappname
!    To proceed, type "myappname" or re-run this command with --confirm
> myappname
Resetting HEROKU_POSTGRESQL_RED_URL (DATABASE_URL)... done

La commande db:reset Essaierait de supprimer la base de données, ce qui n'est pas quelque chose que les autorisations de Heroku autorisent.

86
Neil Middleton