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