मैं किसी अन्य हेरोकू ऐप से किसी ऐप के डेटाबेस तक पहुंचना चाहता हूं। क्या यह साझा डेटाबेस में संभव है?

95
donald 12 मई 2011, 20:46

6 जवाब

सबसे बढ़िया उत्तर

अपडेट किया गया

मूल रूप से, इस उत्तर में कहा गया है कि हालांकि यह कुछ तरकीबों से संभव था, इसे दृढ़ता से हतोत्साहित किया गया था। यह हेरोकू डेवलपर सहायता वेबसाइट पर सलाह पर आधारित था। हालांकि, हाल ही में हेरोकू ने एक संचार जारी किया जिसमें विशेष रूप से वर्णन किया गया था कि इसे कैसे प्राप्त किया जाए, और डेवलपर साइट पर उनकी सलाह को कम कर दिया है। उनके ई-मेल के इस खंड का पूरा पाठ नीचे शामिल है:

क्या आप जानते हैं कि Heroku ऐप्स एक सामान्य डेटाबेस साझा कर सकते हैं? उदाहरण के लिए, आप एनालिटिक्स फ़ंक्शंस को अपने उपयोगकर्ता-सामना करने वाले कोड से अलग एप्लिकेशन में रख सकते हैं।

कई ऐप्स के लिए बस DATABASE_URL config var को समान मान पर सेट करें। सबसे पहले, अपने मौजूदा ऐप के लिए DATABASE_URL प्राप्त करें:

$ heroku config | grep DATABASE_URL  --app sushi DATABASE_URL => postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute1.amazonaws.com/ldfoiusfsf

फिर, नए ऐप्स के लिए DATABASE_URL को इस मान पर सेट करें:

$ 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

- अब दोनों ऐप एक डेटाबेस शेयर करेंगे।

संदर्भ के एक बिंदु के रूप में, हेरोकू की मूल सलाह डेटा को दूरस्थ रूप से एक्सेस करने के लिए एक एपीआई बनाना और उसका उपयोग करना था। मेरा व्यक्तिगत विचार यह है कि कुल मिलाकर, कई स्थितियों के लिए यह अच्छी सलाह है, (अर्थात एक ही डीबी में एकाधिक एप्लिकेशन को जोड़ने से बेहतर) हालांकि मैं उन स्थितियों को देख सकता हूं जहां यह इसके लायक से अधिक परेशानी होगी .

अपडेट करें

इस उत्तर पर टिप्पणियों के अनुसार, यह ध्यान देने योग्य है कि हेरोकू आवश्यकतानुसार डेटाबेस यूआरएल बदलने का अधिकार सुरक्षित रखता है। यदि ऐसा होता है, तो यह आपके द्वितीयक कनेक्शन को विफल कर देगा, और आपको तदनुसार URL अपडेट करने की आवश्यकता होगी।

101
Paul Russell 7 जिंदा 2014, 14:30

प्रासंगिक प्रश्न का देर से टूटने वाला उत्तर!

हेरोकू आधिकारिक तौर पर अपने एडऑन ढांचे के माध्यम से एक बेहतर/सुंदर समाधान का समर्थन करता है। यह उनके नवीनतम समाचार पत्र में वर्णित है कि ऐप्स के बीच ऐडऑन कैसे साझा करें। राइटअप में उल्लिखित स्निपेट नीचे दिए गए हैं:

$ heroku addons:attach my-sushi-db -a my-sushi-reporting --as MAIN_SUSHI_DB    
  Adding MAIN_SUSHI_DB to my-sushi-reporting... done
  Setting MAIN_SUSHI_DB vars and restarting my-sushi-app-reporting... done, v3

लिंक: expanding_the_power_of_add_ons

90
c360ian 31 जिंदा 2015, 11:39

जहां तक ​​​​मुझे पता है कि यह संभव है - आपको डीबी के साथ अपने ऐप के लिए हेरोकू कॉन्फ़िगरेशन चर देखना होगा और फिर उस ऐप पर डेटाबेस_यूआरएल सेट करना होगा जो डेटाबेस को उसी मान पर साझा करना चाहता है। हालांकि ट्रैक बंद है और यह कितना समर्थित है, मुझे नहीं पता।

संपादित करें बस अपने दिमाग को आराम देने के लिए मैंने हरोकू पर दो ऐप तैयार किए हैं - एक शीर्षक के साथ एक साधारण मचान 'पोस्ट'।

http://evening-spring-734.heroku.com/posts मास्टर हैं

http://electric-galaxy-230.heroku.com/posts - गुलाम है

इसलिए दोनों में से किसी एक पर बने पोस्ट शाम-वसंत-734 के डेटाबेस URL पर लिखे जाएंगे।

मैंने बस इतना किया है कि शाम-वसंत-734 का DATABASE_URL प्राप्त करने के लिए उसकेोकू कॉन्फ़िगरेशन का उपयोग करें और फिर उसी मान को इलेक्ट्रिक-गैलेक्सी-230 के DATABASE_URL में सेट करें।

आप कुछ फल डीबी दौड़ स्थितियों के साथ समाप्त हो सकते हैं लेकिन ऐसा करना निश्चित रूप से संभव है।

जादू हुह?

15
John Beynon 12 मई 2011, 23:32

मुझे यह हाल ही में हेरोकू न्यूजलेटर में प्राप्त हुआ। मैं यह पता लगाने के लिए उन्हें ईमेल कर रहा हूं कि क्या यह वास्तव में एक स्वीकृत उपयोग है।

क्या तुम्हें पता था?

एक डेटाबेस को कई ऐप्स के साथ साझा करना

क्या आप जानते हैं कि Heroku ऐप्स एक सामान्य डेटाबेस साझा कर सकते हैं? उदाहरण के लिए, आप एनालिटिक्स फ़ंक्शंस को अपने उपयोगकर्ता-सामना करने वाले कोड से अलग एप्लिकेशन में रख सकते हैं।

एक ही मान पर कई ऐप्स के लिए बस DATABASE_URL config var सेट करें। सबसे पहले, अपने मौजूदा ऐप के लिए DATABASE_URL प्राप्त करें:

$ heroku config | grep DATABASE_URL  --app sushi
DATABASE_URL   => postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute-1.amazonaws.com/ldfoiusfsf

फिर, नए ऐप्स के लिए DATABASE_URL को इस मान पर सेट करें:

$ 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.

बस इतना ही - अब दोनों ऐप्स एक डेटाबेस साझा करेंगे।

12
Community 20 जून 2020, 12:12

Amazon RDS प्लगइन इसके लिए अच्छा काम करता है। एकाधिक ऐप्स एक ही आरडीएस इंस्टेंस साझा कर सकते हैं।

आपके पास उन्हें टेबल साझा करने या Active_record.table_name_prefix का उपयोग करके तालिका नाम टकराव से बचने की सुविधा है।

7
Steve Wilhelm 13 मई 2011, 07:32

हेरोकू संदर्भ देखें: https://devcenter.heroku.com/categories/heroku-postgres

प्रश्न: क्या कई हरोकू एप्लिकेशन एक ही डेटाबेस से जुड़ सकते हैं?

हां। आप एक डेटाबेस से कनेक्ट करने के लिए हरोकू पर चल रहे कई एप्लिकेशन को कॉन्फ़िगर कर सकते हैं, बशर्ते आपके पास डेटाबेस क्रेडेंशियल्स हों। बस उन ऐप्स के DATABASE_URL को ओवरराइड करें, जिन्हें आप Heroku config:add DATABASE_URL=... कमांड का उपयोग करके कनेक्ट करना चाहते हैं।

1
Community 20 जून 2020, 12:12