Je veux accéder à la base de données d’une application d’une autre application Heroku. Est-ce possible dans la base de données partagée ?
Merci
Je veux accéder à la base de données d’une application d’une autre application Heroku. Est-ce possible dans la base de données partagée ?
Merci
Mise à JOUR
A l'origine, cette réponse a déclaré que, bien que cela était possible avec quelques astuces, il est fortement déconseillé. Ceci a été basé sur des conseils sur la Heroku développeur de site web de support. Cependant, récemment, Heroku a publié une communication spécifiquement décrivant la manière d'atteindre cet objectif, et ont arrosée de leur avis, sur le site des développeurs. Le texte complet de cette section de leur adresse e-mail est inclus ci-dessous:
Saviez-vous que les applications peuvent Heroku partager une base de données commune? Par exemple, vous pouvez mettre des fonctions d'analyse de dans une autre application à partir de votre utilisateur face de code.
Il suffit de régler la DATABASE_URL config var pour plusieurs applications à la même de la valeur. Tout d'abord, obtenir la DATABASE_URL pour votre application existante:
$ heroku config | grep DATABASE_URL --app sushi DATABASE_URL => postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute1.amazonaws.com/ldfoiusfsf
Ensuite, définissez la DATABASE_URL pour de nouvelles applications pour cette valeur:
$ heroku config:add DATABASE_URL=postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute-1.amazonaws.com/ldfoiusfsf --app sushi-analytics Adding config vars: DATABASE_URL => postgres://lswlm...m/ldfoiusfsf Restarting app... done, v74. That's it
- maintenant, à la fois pour les apps de partager une base de données.
Tout comme un point de référence, Heroku initiale de conseils pour créer et utiliser une API pour accéder aux données à distance. Mon avis personnel est que, dans l'ensemble, pour beaucoup de situations, cela est de bon conseil, (c'est à dire mieux que la connexion de plusieurs applications à la même DB) même si je peux voir des situations où ce serait le plus d'ennuis que cela vaut la peine.
Mise à JOUR
Selon les commentaires sur cette réponse, il est intéressant de noter que Heroku ne réservons le droit de modifier la base de données des Url en tant que de besoin. Si cela se produit, il sera la cause de vos connexions secondaires à l'échec, et vous aurez besoin de mettre à jour les Url en conséquence.
autant que je sache, il est possible que vous aurez à regarder le heroku variables de configuration de votre application avec la base de données et ensuite définir la database_url sur l'app qui veut partager la base de données de la même valeur. Un peu hors piste si et comment pris en charge, c'est que je ne sais pas.
EDIT Juste pour mettre mon esprit au repos, j'ai lancé deux applications sur Heroku - un simple échafaudage "post" avec un titre.
http://evening-spring-734.heroku.com/posts est le maître
http://electric-galaxy-230.heroku.com/posts - l'esclave
Afin de postes créés sur les deux seront écrites dans la base de données URL de soirée-printemps-734.
Tout ce que j'ai fait, est d'utiliser heroku config pour obtenir le DATABASE_URL de soirée-printemps-734 et ensuite définir la même valeur dans le DATABASE_URL électrique-galaxy-230.
Vous pourriez vous retrouver avec certains fruités DB conditions de course, mais il est certainement possible de le faire.
La magie hein?
J'ai reçu cela dans le Heroku newsletter récemment. Je suis envoyant un courriel à savoir si c'est vraiment une utilisation approuvée.
LE SAVIEZ-VOUS?
Le partage d'une base de données avec de nombreuses applications
Saviez-vous que Heroku les applications peuvent partager une base de données commune? Par exemple, vous pouvez mettre des fonctions d'analyse dans une application séparée de votre utilisateur face de code.
Il suffit de régler la
DATABASE_URL
var config pour plusieurs applications à la même valeur. Tout d'abord, obtenir l'DATABASE_URL
pour votre application existante:$ heroku config | grep DATABASE_URL --app sushi DATABASE_URL => postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute-1.amazonaws.com/ldfoiusfsf
Ensuite, définissez l'
DATABASE_URL
pour de nouvelles applications pour cette valeur:$ heroku config:add DATABASE_URL=postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute-1.amazonaws.com/ldfoiusfsf --app sushi-analytics Adding config vars: DATABASE_URL => postgres://lswlm...m/ldfoiusfsf Restarting app... done, v74.
Voilà, maintenant, à la fois pour les apps de partager une base de données.
Voir Heroku de référence: https://devcenter.heroku.com/categories/heroku-postgres
Q: puis-plusieurs Heroku Applications de se Connecter à une base de données unique?
Oui. Vous pouvez configurer plusieurs applications en cours d'exécution sur Heroku pour se connecter pour une base de données unique, à condition que vous avez les bases de données d'informations d'identification. Simplement remplacer le DATABASE_URL les applications que vous souhaitez vous connecter à l'aide de le heroku config:ajouter DATABASE_URL=... commande.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.