multi database in laravel

3 سال پیش توسط لاراول مطرح شد
آفلاین
user-avatar
لاراول ( 10832 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

0

سلام ، فرض کنین میخوایم از چند تا database برای پروژهمون استفاده کنیم.(تعداد خیلی زیاد)
یک دیتابیس ، اطلاعات اصلی سایت توشه ، و بقیه دیتابیس ها ساختارشون با هم مشابهه ولی دارای اسم های مختلفی هستن، برای واضح شدن موضوع یه مثال میزنم، مثلا ما یه فروشگاه ساز داریم، یه دیتابیس اصلی داره این فروشگاه ساز ، و به ازای هر فروشگاهی که ساخته میشه ، یه دیتابیس مجزا برای همون فروشگاه ساخته میشه
مثلا دیتابیس اصلی اسمش ، dbmain و به ازای هر فروشگاه dbshop۱, dbshop۲, ...
در نتیجه در زمان ورود به هر فروشگاه ما با ۲ تا instance ااز دیتابیس کار میکنیم ، که یکی دیتابیس اصلی فروشگاه ساز و دیگری ، دیتابیس خود شاپ (dbshopN) هستش.
من ۲ تا راه حل پیشنهادی مینویسم ، ممنون میشم نظرتون رو بفرمایین.
۱ - تو database.php یکبار

'dbShop' => [  
'driver' => 'mysql',  
'host' => '',  
'port' => '',  
'database' => '',  
'username' => '',  
'password' => '',  
'unix_socket' => env('DB_SOCKET', ''),  
'charset' => 'utf۸',  
'collation' => 'utf۸_general_ci',  
'prefix' => '',  
'strict' => true,  
'engine' => null,  
],  

اینو اضافه کنم ، و هر زمان که میخوام رو این دیتابیس query بزنم ، مقادیر database و username , password رو عوض کنم و query برنم.(مسئله همزمانی)
۲ - به اضای هر فروشگاه که ساخته میشه ، بیام به database.php ، همون تیکه کد بالا رو به اسم اون فروشگاه مثلا ، تعریف کنم ، و زمان کویری زدن ، connection رو عوض کنم .
ممنون میشم ، نظرتون رو در این باره به اشتراک بزارین.
@hesammousavi

آفلاین
user-avatar
vahid Mohammadi ( 37202 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

0

سلام به نظر من شما بهتره از ساختار زیر برای داینامیک ساختن تعریف دیتا بیس استفاده کنید
به سادگی میتونید با دستور زیر مقادیر مورد نظرتون رو توی database.php ست کنید

Config::set("database.connections.mysql", [
    "host" => "...",
    "database" => "...",
    "username" => "...",
    "password" => "..."
]);

@LaraRock

آفلاین
user-avatar
لاراول ( 10832 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

0

بله این همون مورد اولیه که گفتم، ولی آیا همزمان تعداد درخواست بالا داشته باشیم و هر کدوم هم بخوان این دیتا رو عوض کنن، مشکل پیش نمیاد؟

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.