web-dev-qa-db-fra.com

Comment changer DATABASE_URL pour une application Heroku

Je voulais utiliser une base de données externe avec mon application heroku. Mais je ne peux pas modifier les cariables de configuration. J'ai essayé d'utiliser l'interface graphique, ce qui dit, Impossible d'écraser les valeurs des pièces jointes DATABASE_URL. Pendant que j'essayais d'utiliser CLI également. J'ai utilisé la commande: heroku config:addDATABASE_URL="postgresql://username:password@IP:PORT". Cependant, cela génère une erreur ... is not a heroku command.

27
Ninja Boy

Après avoir essayé la plupart de ces réponses, je suis tombé sur une mise à jour en 2016, ici : la base de données doit d'abord être détachée, puis mettre à jour la variable de DATABASE_URL.

heroku addons:attach heroku-postgresql -a <app_name> --as HEROKU_DATABASE
heroku addons:detach DATABASE -a <app_name>
heroku config:add DATABASE_URL=
29
0bserver07

Une méthode alternative qui ne nécessite pas de détachement (ce qui n'est peut-être pas le résultat souhaité du commutateur) consiste à simplement attacher la nouvelle base de données, puis à la promouvoir, ce que les Heroku Documents indiquent explicitement comme un moyen de définir les DATABASE_URL.

heroku addons:attach heroku-postgresql -a <app_name>
heroku pg:promote heroku-postgresql -a <app_name>
12
andrewjt

Comme expliqué dans cet article , la syntaxe correcte pour définir/ajouter une variable de configuration est

$ heroku config:set DATABASE_URL="postgresql://username:password@IP:PORT"

Cependant, il ressemble (voir les commentaires) au DATABASE_URL est obsolète et la tentative de mise à jour déclenchera une erreur.

3
Simone Carletti

J'ai eu la même situation aujourd'hui quand je dois changer postgres en postgis. Détacher ne fonctionne pas pour moi, donc je l'ai fait pour database.yml:

production:

  url: <%= ENV['DATABASE_URL'].sub(/^postgres/, "postgis") %>

https://github.com/rgeo/activerecord-postgis-adapter/issues/214 .

2
Tan Duong

Sur la base des Heroku docs c'est ainsi que vous partageriez une base de données avec plusieurs applications.

heroku addons:attach my-originating-app::DATABASE --app sushi
1
Andrei Erdoss

Résolu. Juste pour la référence des utilisateurs qui ont le même problème ou qui souhaitent avoir une implémentation similaire. Voici la solution de contournement qui a fonctionné pour moi.

Heroku n'écrase plus databse.yml, donc je viens de modifier le DATBASE_URL dans le database.yml et je l'ai poussé :)

Ça a marché aussi!

Source: https://discussion.heroku.com/t/Rails-4-1-database-yml-no-longer-overwritten-on-heroku/55

1
Ninja Boy