راکت

multi database in laravel

2 پاسخ

سلام ، فرض کنین میخوایم از چند تا 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

ثبت پرسش جدید

پاسخ‌ها

2
vahid Mohammadi
vahid Mohammadi
@viva.mohammadi

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

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

@LaraRock

لاراول
لاراول
@LaraRock

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

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام