হেরোকুতে 2 টি অ্যাপের মধ্যে ডেটাবেস ভাগ করুন


90

আমি অন্য একটি হেরোকু অ্যাপ্লিকেশন থেকে একটি অ্যাপের ডেটাবেস অ্যাক্সেস করতে চাই। ভাগ করা ডাটাবেসে কি তা সম্ভব?

উত্তর:


100

আপডেট করা হয়েছে

মূলত, এই উত্তরটি বলেছিল যে কয়েকটি কৌশল দ্বারা এটি সম্ভব হলেও এটি দৃ strongly ়ভাবে নিরুৎসাহিত হয়েছিল । এটি হেরোকু বিকাশকারী সমর্থন ওয়েবসাইটের পরামর্শের ভিত্তিতে করা হয়েছিল। তবে সম্প্রতি হেরোকু একটি যোগাযোগ জারি করেছিলেন যাতে এটি কীভাবে অর্জন করা যায় তা নির্দিষ্টভাবে বর্ণনা করা হয়েছে এবং বিকাশকারী সাইটে তাদের পরামর্শকে জল দিয়ে দিয়েছেন। তাদের ই-মেইলের এই বিভাগের সম্পূর্ণ পাঠ্য নীচে অন্তর্ভুক্ত করা হয়েছে:

আপনি কি জানেন যে হেরোকু অ্যাপস একটি সাধারণ ডাটাবেস ভাগ করতে পারে? উদাহরণস্বরূপ, আপনি আপনার ব্যবহারকারী-মুখী কোড থেকে পৃথক অ্যাপ্লিকেশনটিতে বিশ্লেষণ ফাংশন রাখতে পারেন।

একাধিক অ্যাপ্লিকেশনের জন্য একই মানটিতে কেবল 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

- এখন উভয় অ্যাপ্লিকেশন একটি ডাটাবেস ভাগ করবে।

ঠিক রেফারেন্স হিসাবে, হিরোকুর মূল পরামর্শটি ছিল দূরবর্তী অবস্থান থেকে ডেটা অ্যাক্সেস করার জন্য একটি API তৈরি এবং ব্যবহার করা। আমার ব্যক্তিগত মতামতটি সামগ্রিকভাবে, অনেক পরিস্থিতিতে এটি ভাল পরামর্শ , (যেমন একই ডিবিতে কেবলমাত্র একাধিক অ্যাপ্লিকেশন সংযুক্ত করার চেয়ে ভাল) যদিও আমি এমন পরিস্থিতি দেখতে পাচ্ছি যেখানে তার মূল্যটি তার চেয়ে বেশি সমস্যায় পড়বে।

হালনাগাদ

এই উত্তরের মতামত অনুসারে, এটি লক্ষণীয় যে হেরোকু প্রয়োজনীয় হিসাবে ডাটাবেস ইউআরএলগুলি পরিবর্তন করার অধিকার সংরক্ষণ করে। যদি এটি ঘটে থাকে তবে এটি আপনার গৌণ সংযোগগুলিকে ব্যর্থ করে দেবে এবং সেই অনুযায়ী আপনাকে URL আপডেট করতে হবে update


4
এটি সম্ভব তা প্রমাণ করার জন্য কেবল হিরোকুতে অ্যাপস সেটআপ করুন - আমার প্রতিক্রিয়াতে বিশদ।
জন বেনন

4
যথেষ্ট সুষ্ঠু, নিচে ভোট প্রত্যাহার ... হিরোকুর সমর্থন আলাদা উত্তর! প্রশ্ন: আমি যদি দুটি হিরকু অ্যাপ্লিকেশন বিকাশ করি তবে তারা কী একটি একক ডাটাবেস অ্যাক্সেস করতে পারে? আমি জিজ্ঞাসার কারণটি হ'ল আমাদের কাছে একটি রেলস অ্যাপ এবং একটি সায়াত্রা অ্যাপ রয়েছে এবং তাদের একটি পোস্টগ্রিজ ডেটাবেস ভাগ করে নেওয়া দরকার। বরং HTTP দ্বারা এটি না! হিরকু সমর্থন থেকে উত্তর: হ্যাঁ, আপনার যদি প্রয়োজন হয়, আপনি পারেন। প্রতিটি হেরোকু অ্যাপ্লিকেশন ডিফল্টরূপে সরবরাহিত একটি ডেটাবেস পায় তবে একটি অ্যাপ্লিকেশানের পক্ষে অন্য অ্যাপ্লিকেশনটির ডাটাবেসটি কেবল একটি অ্যাপ্লিকেশন থেকে অন্য অ্যাপ্লিকেশনটিতে DATABASE_URL কনফিগার কনফিগার করে অনুলিপি করা সম্ভব হয়।
জন বেনন

4
আমি ডাউন ভোটটি প্রত্যাহার করে নিলেও গৃহীত উত্তরগুলি এখনও একটি এফওয়াইআই হিসাবে ভুল।
জন বেনন

4
তারা বলে যে তারা আপনার অ্যাপ্লিকেশন ডাটাবেস ইউআরএল পরিবর্তন করার অধিকার সংরক্ষণ করে তাই যদি আপনি যদি ম্যানুয়ালি ব্যবহার করেন এমন ডাটাবেস ইউআরএল পরিবর্তন করতে হয় তবে তা ঘটতে পারে।
জন বেনন

7
অ্যাপ্লিকেশনগুলির মধ্যে DATABASE_URL ভাগ করার জন্য এখন একটি সরকারী হিরকু উপায় রয়েছে। নীচে @ c360ian দ্বারা উত্তর দেখুন
mobeets

83

প্রাসঙ্গিক প্রশ্নের দেরী-উত্তর!

হিরোকু আনুষ্ঠানিকভাবে এখন তাদের অ্যাডন কাঠামোর মাধ্যমে একটি আরও ভাল / করুণামুক্ত সমাধান সমর্থন করে। এটি অ্যাপ্লিকেশনগুলির মধ্যে অ্যাডোনগুলি কীভাবে ভাগ করবেন সে সম্পর্কে তাদের সর্বশেষ নিউজলেটারে বর্ণিত হয়েছে। নীচে লিখিত লেখায় স্নিপেটগুলি উল্লেখ করা হয়েছে:

$ 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

লিঙ্ক: প্রসারিত_ত_শক্তি_আপনি_অন


অনেক ধন্যবাদ! এটির অগ্রাধিকার দেওয়া উত্তর হওয়া উচিত!
এইচএলএল

4
এটি সঠিক উত্তর। অন্যান্য সমস্ত উত্তর হ্রাস করা হয়েছে, এবং তাদের বেশিরভাগই নকল হয়।
জিল্ডার

4
আমি যে কমান্ডটি ব্যবহার করেছি তার বিন্যাসটি হ'লheroku addons:attach originating_app_name::HEROKU_POSTGRESQL_COLOR_URL -a no_db_app_name
মার্কার

15

যতদূর আমি জানি এটি সম্ভব - আপনার অ্যাপ্লিকেশনটির জন্য হিরকু কনফিগার ভেরিয়েবলগুলি আপনাকে ডিবি দিয়ে দেখতে হবে এবং তারপরে অ্যাপ্লিকেশনটিতে ডাটাবেস_আরল সেট করতে হবে যা ডাটাবেসটিকে একই মানতে ভাগ করতে চায়। কিন্ডা যদিও ট্র্যাক বন্ধ এবং এটি কতটা সমর্থিত তা আমি জানি না।

সম্পাদনা করুন আমার মনকে বিশ্রাম দেওয়ার জন্য আমি হিরোকুতে দুটি অ্যাপ্লিকেশন তৈরি করেছি - একটি শিরোনাম সহ একটি সহজ মজাদার 'পোস্ট'।

http://evening-spring-734.heroku.com/posts হ'ল মাস্টার

http://electric-galaxy-230.heroku.com/posts - দাস

সুতরাং উভয় তৈরি পোস্ট সন্ধ্যা-বসন্ত -734 এর ডাটাবেস URL এ লেখা হবে।

আমি যা করেছি তা হিরাকু কনফিগারেশনটি সন্ধ্যা-বসন্ত -734 এর DATABASE_URL পেতে এবং তারপরে বৈদ্যুতিক-গ্যালাক্সি -৩৩০ এর DATABASE_URL এ একই মান সেট করে।

আপনি কিছু সাফল্য ডিবি রেসের শর্ত দিয়ে শেষ করতে পারেন তবে এটি করা অবশ্যই সম্ভব।

ম্যাজিক হাহ?


+1: আমি এটি সংক্ষিপ্ত বা ভ্যানিটি ইউআরএলগুলি করার জন্য খুব দরকারী হিসাবে দেখছি .. যেমন myapp.me/iwasrobbed ( হেরোকু অ্যাপ্লিকেশন # 1) myapp.com/users/1 ( হিরোকু অ্যাপ # 2) এ পুনঃনির্দেশ করে এখন থেকে আমি সঞ্চয় করতে পারি মানক ব্যবহারকারী ডিবিতে ভ্যানিটির নাম। ধন্যবাদ জন!
12:34 এ iwasrobbed

4
হিরকু পিজি: প্রচার করুন DATABASE_URL - অ্যাপল_আপনার_নামটি এই পরিবর্তনশীলটি সেট করার সমর্থিত উপায়।
নীল মিডলটন

আমার একমাত্র মন্তব্য রেসের অবস্থার প্রতি .. শ্রমিক এবং ওয়েব উদাহরণ একই রকম হবে যেমন দূরবর্তী শ্রমিকরা লোহার কর্মী বা অবরুদ্ধার মতো হবে।
baash05

12

আমি সম্প্রতি হেরোকু নিউজলেটারে এটি পেয়েছি। এটি সত্যিকারের অনুমোদিত ব্যবহার কিনা তা জানতে আমি তাদের ইমেল করছি

তুমি কি জানতে?

অনেক অ্যাপ্লিকেশন সহ একটি ডাটাবেস ভাগ করা

আপনি কি জানেন যে হেরোকু অ্যাপস একটি সাধারণ ডাটাবেস ভাগ করতে পারে? উদাহরণস্বরূপ, আপনি আপনার ব্যবহারকারী-মুখী কোড থেকে পৃথক অ্যাপ্লিকেশনটিতে বিশ্লেষণ ফাংশন রাখতে পারেন।

বেশ কয়েকটি অ্যাপ্লিকেশনের জন্য একই 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.

এটাই - এখন উভয় অ্যাপ্লিকেশন একটি ডেটাবেস ভাগ করবে।


4
আমি হিরোকুকে এই পদ্ধতিটি ব্যবহারের জন্য একটি বিনামূল্যে ওয়েব ডায়নো এবং একটি বিনামূল্যে কর্মী ডায়নো উভয়ই পেতে জিজ্ঞাসা করেছি। এখানে তাদের প্রতিক্রিয়া। >> "জোশ - আমরা এটি করতে নিরুৎসাহিত করি, তবে শ্রমিকটি অলস হয়ে যাওয়ার সাথে সাথে সমস্যাগুলিও ঘটত Once একবার এটি অলস হয়ে গেলে এটি কোনও কাজ করা বন্ধ করে দেয় এবং ওয়েব অনুরোধের মতো এটিকে 'জাগ্রত' করার মতো কিছুই ছিল না, এটি হবে কর্মী হিসাবে অকেজো "" << সুতরাং দেখে মনে হচ্ছে আপনি একই ডিবিতে একাধিক অ্যাপ্লিকেশন ব্যবহার করতে পারেন তবে এটি নিখরচায় খুব কার্যকর নয়।
জোশাইভার্স

আমি এটি বিকাশের উদ্দেশ্যে ব্যবহার করছি, আমার লাইভ অ্যাপ্লিকেশনটিতে ইতিমধ্যে আমার কয়েক হাজার সারি রয়েছে এবং নতুন উপস্থিতিটি আরও একটি ছোট হিরকু অ্যাপ্লিকেশনটিতে বিকাশ করা হচ্ছে, তাই ডেটা ভাগ করে নিতে সক্ষম হওয়ায়, আমি বিকাশ করতে পারি এবং এর সাথে নতুন নতুন চেহারা দেখতে পারি একই ডেটা
ডিভিড সিলভা

7

অ্যামাজন আরডিএস প্লাগইন এটির জন্য ভাল কাজ করে। একাধিক অ্যাপ্লিকেশন একই আরডিএস উদাহরণ ভাগ করতে পারে।

সক্রিয়_আরেকর্ড.ট্যাবল_নাম_প্রিফিক্স ব্যবহার করে তাদের টেবিল ভাগ করতে বা টেবিলের নাম সংঘর্ষ এড়াতে আপনার নমনীয়তা রয়েছে।


1

হেরোকু রেফারেন্স দেখুন: https://devcenter.heroku.com / বিভাগসমূহ / চিরকু- পোষ্টগ্রেস

প্রশ্ন: একাধিক হেরোকু অ্যাপ্লিকেশনগুলি কি কোনও একক ডাটাবেসে সংযুক্ত হতে পারে?

হ্যাঁ. আপনি যদি হেরোকুতে চলমান একাধিক অ্যাপ্লিকেশনগুলিকে একটি একক ডাটাবেসে সংযোগ করতে কনফিগার করতে পারেন তবে শর্ত থাকে যে আপনার কাছে ডাটাবেস শংসাপত্র রয়েছে। হিরকু কনফিগারেশন ব্যবহার করে আপনি যে অ্যাপ্লিকেশনটি সংযোগ করতে চান তা কেবল DATABASE_URL ওভাররাইড করুন: DATABASE_URL = ... কমান্ড যুক্ত করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.