لاراول
6 سال پیش توسط لاراول مطرح شد
2 پاسخ

multi database in laravel

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


ثبت پرسش جدید
vahid Mohammadi
@viva.mohammadi 6 سال پیش مطرح شد
0

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

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

@LaraRock


لاراول
@LaraRock 6 سال پیش مطرح شد
0

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


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

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