خوندن اطلاعات از فایل کانفیگ در پروژه umbrella - الکسیر

با درود خدمت دوستان عزیز . من یک موردی برام پیش اومده باید اطلاعات کانفیگ پروژه دیگه ای رو در پروژه دیگه بخونم .

به صورت مثال من از اوبرث استفاده می کنم و می خوام اطلاعات کانفیگ که در پروژه فونیکسم استفاده کردم در پروژه الکسیرم هم بالا بیارم .

اگر در همان پروژه بودیم در اینترنت این کد رو درج کردند

Application.get_env(:my, :title)

خوب این برای همون پروژه هست اگر پروژه دیگه ای باشه باید چطور عمل کرد ؟ آیا راهی دارد ؟

با تشکر از دوستان پیشاپیش
@samdvr @ @toomaj

آیا هردو در یک سرور اجرا میشن؟ دراین صورت باید بتونید از کامند بالا استفاده کنید. ارگومنت اول اسم application در umbrella و دومی env variable

Environment variable ها روی سرور به صورت global ذخیره میشن و اگه هردو app در یک سرور هستند میتونی به variable ها دسترسی داشته باشی ولی اینکه بایداز variable یک app دریکی دیگه استفاده کنی نشان میده که دو app به هم زیاد وابستگی دارند و احتمالا باید. یک app باشند

1 پسندیده

درود مندس بله هر دو در یک سرور هست . من فقط کامل صحبت های شما رو متوجه نشدم

به صورت مثال من در این فایل config.exs یک کد دارم به صورت زیر (در پروژه webdrive ) :

config :ueberauth, Ueberauth.Strategy.Google.OAuth,
  client_id: System.get_env("GOOGLE_CLIENT_ID"),
  client_secret: System.get_env("GOOGLE_CLIENT_SECRET")

من برای زیاد نشدن کد و اینکه بدونم این کلاینت آیدی و سکرت آیدی رو از کدوم پروژه بگیره می خوام در پروژه دیگه مثلا appdrivegoogle فراخوانی کنم . یعنی در ماژول x بتونم اطلاعات کانفیگ در پروژه فونیکس رو بیارم .

حالا می توونم خواهش کنم چطور در پروژه دیگه ای فراخوانی کنم ؟

این رو چطور بنویسم که بتونم کلاینت آیدی و سکرت کلاینت رو بگیرم ؟

Application.get_env(:my, :title)

به روز رسانی

در خود داکیومنت الکسیر دیدم که مثلا گفته بیام

import_config "../apps/*/config/config.exs"

به این صورت ایمپورت کنم بعد بیام به صورت merge(config1, config2) فراخوانی کنم . ولی من می خوام اطلاعات کانفیگ یک پروژه رو در یک ماژول پروژه دیگه لود کنم
با تشکر

1 پسندیده

سلام از Env Vars استفاده كنيد

با خوندن پست بالا اون چيزى كه @samdvr گفتند قابل درك ميشه

2 پسندیده

درود البته من فعلنه از همین روش کارمو جلو انداخته ام export NEW_VAR="Testing export" ولی گفتم شاید کاربر یک دفعه به کلش بزنه این رو بخواد دست بزنه و جاهعای دیگه وجود داره اونا به مشکل بخوره گفتم از یک کانفیگ همه کلاینت آیدی و سکرت آیدی رو بگیرند

پس به نظرتون همین روش کافی هست ؟

تشکر از دو دوست عزیز
@samdvr @toomaj

سلام
اينطور كه من متوجه شدم شما دوتا سرويس در يك سرور داريد كه قراره بخشى از كانفيگ اونها مشترك باشه، ميتونيد يك global config داشته باشيد كه قسمت مشترك رو نگه دارى كنه،
اگر لازمه كاربر مديريت كانفيگ سرويسى كه ازش استفاده ميكند رو داشته باشه بايد variable ها رو در اخطيارش بزاريد كه بتونه override كنه مثلا با ذخيره كردن توى ديتابيس. راه هاى ديگه هم هست.
اما اگر تعداد كار بر ها و سرويس هاى اختصاصى زياد بشه و لازم بشه كه براى هر سرويس يك vps دپلوى كنيد چى؟ اونوقت تركيب كردن كانفيگ دوتا سرويس باز هم منطقى و عمليه؟

2 پسندیده

درود خدمت شما تشکر از پاسخگویی شما دو عزیز @samdvr @toomaj

بله درست متوجه شدید تقریبا همین که شما فرمودید هست . با حرف شما و همینطور دوست خوبمون تصمیم گرفتم همون موارد بالا در اون پست رو انجام بدم چون امکان تفکیک در آینده هست و یک خط اضافه کد زدن مشکلی ایجاد نمی کنه فوقش ویرایش می کنم .

:tulip: :rose:

1 پسندیده