मैं एक ऐप के डेटाबेस को दूसरे हरोकू ऐप से एक्सेस करना चाहता हूं। क्या साझा डेटाबेस में यह संभव है?
जवाबों:
UPDATED
मूल रूप से, इस जवाब में कहा गया है कि हालांकि यह कुछ तरकीबों के साथ संभव था, लेकिन यह दृढ़ता से हतोत्साहित किया गया। यह हरोकू डेवलपर समर्थन वेबसाइट पर सलाह पर आधारित था। हालांकि, हाल ही में हरोकू ने विशेष रूप से यह वर्णन करने के लिए एक संचार जारी किया कि इसे कैसे प्राप्त किया जाए, और डेवलपर साइट पर उनकी सलाह पर पानी फेर दिया है। उनके ई-मेल के इस खंड का पूरा पाठ नीचे शामिल किया गया है:
क्या आप जानते हैं कि हरोकू ऐप्स एक आम डेटाबेस साझा कर सकते हैं? उदाहरण के लिए, आप अपने उपयोगकर्ता-सामना कोड से एक अलग एप्लिकेशन में एनालिटिक्स फ़ंक्शन रख सकते हैं।
बस एक ही मान के लिए कई ऐप्स के लिए DATABASE_URL कॉन्फिग वर्जन सेट करें। सबसे पहले, अपने मौजूदा ऐप के लिए 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 को आवश्यकतानुसार बदलने का अधिकार सुरक्षित रखता है। यदि ऐसा होता है, तो यह आपके द्वितीयक कनेक्शनों को विफल कर देगा, और आपको तदनुसार यूआरएल अपडेट करने की आवश्यकता होगी।
सदाबहार सवाल का देर से जवाब!
हेरोकू आधिकारिक तौर पर अब उनके ऐडऑन ढांचे के माध्यम से एक बेहतर / सुशोभित समाधान का समर्थन करता है। यह उनके नवीनतम समाचार पत्र में वर्णित किया गया है कि ऐप के बीच कैसे ऐडऑन साझा करें। नीचे दिए गए स्निपेट्स राइटअप में दिए गए हैं:
$ 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
लिंक: विस्तार_थे_पॉवर_ऑफ_एड_ऑन
heroku addons:attach originating_app_name::HEROKU_POSTGRESQL_COLOR_URL -a no_db_app_name
जहां तक मुझे पता है कि यह संभव है - आपको डीबी के साथ अपने ऐप के लिए हरोकू कॉन्फिग वेरिएबल्स को देखना होगा और फिर उस ऐप पर database_url सेट करना होगा जो डेटाबेस को उसी मूल्य पर साझा करना चाहता है। Kinda बंद ट्रैक के रूप में हालांकि और यह कैसे समर्थित है मुझे नहीं पता।
संपादित करें बस अपने दिमाग को आराम से सेट करने के लिए मैंने हर्कोक पर दो ऐप बनाए हैं - एक शीर्षक के साथ एक साधारण मचान 'पोस्ट'।
http://evening-spring-734.heroku.com/posts मास्टर है
http://electric-galaxy-230.heroku.com/posts - गुलाम है
तो या तो सृजित पदों को शाम-बसंत -734 के डेटाबेस URL पर लिखा जाएगा।
मैंने जो कुछ किया है वह शाम-बसंत -734 के DATABASE_URL को प्राप्त करने के लिए हरोकू कॉन्फिग का उपयोग करें और फिर उसी मूल्य को इलेक्ट्रिक-गैलेक्सी-230 के DATABASE_URL में सेट करें।
आप डीबी दौड़ की कुछ शर्तों के साथ समाप्त हो सकते हैं लेकिन ऐसा करना निश्चित रूप से संभव है।
जादू हुह?
मुझे हाल ही में हेरोकू समाचार पत्र में यह प्राप्त हुआ। मैं उन्हें यह पता लगाने के लिए ईमेल कर रहा हूं कि क्या यह वास्तव में स्वीकृत उपयोग है।
क्या तुम्हें पता था?
कई एप्लिकेशन के साथ एक डेटाबेस साझा करना
क्या आप जानते हैं कि हरोकू ऐप्स एक आम डेटाबेस साझा कर सकते हैं? उदाहरण के लिए, आप अपने उपयोगकर्ता-सामना कोड से एक अलग एप्लिकेशन में एनालिटिक्स फ़ंक्शन डाल सकते हैं।
बस एक ही मान के लिए कई एप्लिकेशन के लिए
DATABASE_URL
कॉन्फ़िगरेशन संस्करण सेट करें । सबसे पहले,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.
यह बात है - अब दोनों ऐप एक डेटाबेस साझा करेंगे।
अमेजन आरडीएस प्लगइन इसके लिए अच्छा काम करता है। कई ऐप एक ही RDS उदाहरण साझा कर सकते हैं।
आपके पास उनके पास टेबल साझा करने के लिए या active_record.table_name_prefix का उपयोग करके तालिका नाम टकराव से बचने का लचीलापन है।
हरोकू संदर्भ देखें: https://devcenter.heroku.com/categories/heroku-postgres
प्रश्न: क्या कई हरोकू एप्लिकेशन एक ही डेटाबेस से जुड़ सकते हैं?
हाँ। आप एक डेटाबेस से कनेक्ट करने के लिए हरोकू पर चल रहे कई एप्लिकेशन को कॉन्फ़िगर कर सकते हैं, बशर्ते कि आपके पास डेटाबेस क्रेडेंशियल हों। केवल उन ऐप्स के DATABASE_URL को ओवरराइड करें जिन्हें आप heroku config का उपयोग करके कनेक्ट करना चाहते हैं: DATABASE_URL = ... कमांड जोड़ें।