บทความ

วิธีกำหนดค่า Laravel ให้ใช้หลายฐานข้อมูลในโครงการของคุณ

โดยปกติโครงการพัฒนาซอฟต์แวร์เกี่ยวข้องกับการใช้ฐานข้อมูลเพื่อจัดเก็บข้อมูลในลักษณะที่มีโครงสร้าง

สำหรับโครงการเฉพาะอาจจำเป็นต้องใช้หลายฐานข้อมูล

ด้วย Laravel ในการใช้หลายฐานข้อมูล เราจำเป็นต้องกำหนดค่าเฟรมเวิร์ก และโดยเฉพาะไฟล์การกำหนดค่าการเชื่อมต่อ

มาดูวิธีกำหนดค่า Laravel ให้ใช้หลายฐานข้อมูลกันดีกว่า

เวลาในการอ่านโดยประมาณ: 4 นาที

เนื้อไม่มีมัน database.php in config ไดเรกทอรี

ไฟล์นี้อยู่ในไดเร็กทอรี config ของแอปพลิเคชัน Laravel ของคุณ

ในไฟล์ database.php เป็นไปได้ defiมีการเชื่อมต่อฐานข้อมูลหลายรายการ ทุกการเชื่อมต่อจะต้องมี definited เป็นอาร์เรย์ อาร์เรย์ควรมีข้อมูลต่อไปนี้:

  • driver: ไดรเวอร์ฐานข้อมูลที่จะใช้;
  • host: ชื่อ host หรือที่อยู่ IP ของเซิร์ฟเวอร์ฐานข้อมูล
  • port: หมายเลขพอร์ตเซิร์ฟเวอร์ฐานข้อมูล
  • database: ชื่อฐานข้อมูล;
  • username: ชื่อผู้ใช้สำหรับเชื่อมต่อกับฐานข้อมูล
  • password: รหัสผ่านสำหรับการเชื่อมต่อกับฐานข้อมูล

ตัวอย่างเช่นรหัสต่อไปนี้ defiมีการเชื่อมต่อฐานข้อมูลสองแบบ การเชื่อมต่อหนึ่งสำหรับ MySQL และอีกการเชื่อมต่อสำหรับ PostgreSQL:

'connections' => [
        'sqlite' => [
            'driver' => 'sqlite',
            'url' => env('DATABASE_URL'),
            'database' => env('DB_DATABASE', database_path('database.sqlite')),
            'prefix' => '',
            'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
        ],

        'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
    PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

        'pgsql' => [
            'driver' => 'pgsql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '5432'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
            'prefix_indexes' => true,
            'schema' => 'public',
            'sslmode' => 'prefer',
        ],

วิธีเชื่อมต่อกับฐานข้อมูล

หลังจาก defiเมื่อคุณมีการเชื่อมต่อฐานข้อมูลแล้ว คุณสามารถใช้การเชื่อมต่อเหล่านั้นในโค้ดของคุณได้ Laravel- เมื่อต้องการทำเช่นนี้ คุณสามารถใช้ facade ของฐานข้อมูล ที่นั่น facade ฐานข้อมูลจัดเตรียมอินเทอร์เฟซแบบรวมสำหรับการโต้ตอบกับฐานข้อมูล

หากต้องการสลับระหว่างการเชื่อมต่อฐานข้อมูล คุณสามารถใช้วิธีนี้ได้ Connection() ของ facade ฐานข้อมูล วิธีการ Connection() ใช้ชื่อของการเชื่อมต่อฐานข้อมูลเป็นอาร์กิวเมนต์

ตัวอย่างเช่น รหัสต่อไปนี้เปลี่ยนจาก mysql DB ไปเป็น pgsql DB:

จดหมายข่าวนวัตกรรม
อย่าพลาดข่าวสารที่สำคัญที่สุดเกี่ยวกับนวัตกรรม ลงทะเบียนเพื่อรับพวกเขาทางอีเมล
use Illuminate\Support\Facades\DB;

DB::connection('pgsql');

เมื่อคุณสลับไปใช้การเชื่อมต่อฐานข้อมูล คุณจะสามารถใช้เพื่อสอบถามและโต้ตอบกับฐานข้อมูลได้

ประโยชน์ของการใช้หลายฐานข้อมูลใน Laravel

มีประโยชน์มากมายในการใช้หลายฐานข้อมูลใน Laravel ได้แก่:

  • ประสิทธิภาพที่ดีขึ้น: การใช้หลายฐานข้อมูลสามารถปรับปรุงประสิทธิภาพของแอปพลิเคชันได้โดยการแยกข้อมูลประเภทต่างๆ ตัวอย่างเช่น คุณอาจจัดเก็บข้อมูลผู้ใช้ไว้ในฐานข้อมูลหนึ่งและข้อมูลผลิตภัณฑ์ในฐานข้อมูลอื่น
  • การรักษาความปลอดภัยที่เพิ่มขึ้น: การใช้หลายฐานข้อมูลสามารถปรับปรุงความปลอดภัยของแอปพลิเคชันได้โดยการแยกข้อมูลประเภทต่างๆ ตัวอย่างเช่น คุณอาจจัดเก็บข้อมูลที่ละเอียดอ่อนไว้ในฐานข้อมูลหนึ่งและข้อมูลที่ละเอียดอ่อนน้อยกว่าในฐานข้อมูลอื่น
  • ความสามารถในการปรับขนาดได้มากขึ้น: การใช้หลายฐานข้อมูลสามารถทำให้แอปพลิเคชันของคุณสามารถปรับขนาดได้มากขึ้นโดยอนุญาตให้คุณกระจายข้อมูลของคุณไปยังเซิร์ฟเวอร์หลายเครื่อง

แนวทางปฏิบัติที่ดีที่สุดสำหรับการใช้หลายฐานข้อมูลใน Laravel

ต่อไปนี้เป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับการใช้หลายฐานข้อมูลใน Laravel:

  • ใช้ชื่อที่จำง่ายสำหรับการเชื่อมต่อฐานข้อมูล: ซึ่งจะทำให้ระบุและจัดการการเชื่อมต่อฐานข้อมูลได้ง่ายขึ้น
  • ใช้วิธี Connection() ที่จะไปจากที่หนึ่ง DB ไปยังอีกที่หนึ่ง - สิ่งนี้จะช่วยให้คุณหลีกเลี่ยงการทำงานโดยไม่ตั้งใจ การสอบถาม sul ฐานข้อมูล ผิด.
  • ใช้ระบบการย้ายฐานข้อมูลเพื่อจัดการสคีมาฐานข้อมูลของคุณ - ซึ่งจะช่วยให้คุณรักษาสคีมาฐานข้อมูลของคุณให้ซิงค์กับทุกสคีมาของคุณ ฐานข้อมูล.

ข้อสรุป

การใช้ฐานข้อมูลหลายฐานข้อมูลใน Laravel อาจเป็นวิธีที่ยอดเยี่ยมในการปรับปรุงประสิทธิภาพ ความปลอดภัย และความสามารถในการปรับขนาดของแอปพลิเคชันของคุณ ด้วยการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดที่อธิบายไว้ในบทความนี้ คุณสามารถใช้หลายฐานข้อมูลใน Laravel ได้อย่างมีประสิทธิภาพ

การอ่านที่เกี่ยวข้อง

Ercole Palmeri

จดหมายข่าวนวัตกรรม
อย่าพลาดข่าวสารที่สำคัญที่สุดเกี่ยวกับนวัตกรรม ลงทะเบียนเพื่อรับพวกเขาทางอีเมล

บทความล่าสุด

การชำระเงินออนไลน์: นี่คือวิธีที่บริการสตรีมมิ่งทำให้คุณชำระเงินตลอดไป

ผู้คนนับล้านชำระค่าบริการสตรีมมิ่ง โดยจ่ายค่าธรรมเนียมการสมัครสมาชิกรายเดือน เป็นความเห็นทั่วไปที่คุณ...

29 2024 เมษายน

Veeam มีการสนับสนุนแรนซัมแวร์ที่ครอบคลุมที่สุด ตั้งแต่การป้องกันไปจนถึงการตอบสนองและการกู้คืน

Coveware by Veeam จะยังคงให้บริการตอบสนองต่อเหตุการณ์การขู่กรรโชกทางไซเบอร์ต่อไป Coveware จะนำเสนอความสามารถในการนิติเวชและการแก้ไข...

23 2024 เมษายน

การปฏิวัติสีเขียวและดิจิทัล: การบำรุงรักษาเชิงคาดการณ์กำลังเปลี่ยนแปลงอุตสาหกรรมน้ำมันและก๊าซอย่างไร

การบำรุงรักษาเชิงคาดการณ์กำลังปฏิวัติภาคส่วนน้ำมันและก๊าซ ด้วยแนวทางเชิงรุกและนวัตกรรมในการจัดการโรงงาน...

22 2024 เมษายน

หน่วยงานกำกับดูแลการต่อต้านการผูกขาดของสหราชอาณาจักรส่งสัญญาณเตือน BigTech เกี่ยวกับ GenAI

UK CMA ได้ออกคำเตือนเกี่ยวกับพฤติกรรมของ Big Tech ในตลาดปัญญาประดิษฐ์ ที่นั่น…

18 2024 เมษายน

อ่านนวัตกรรมในภาษาของคุณ

จดหมายข่าวนวัตกรรม
อย่าพลาดข่าวสารที่สำคัญที่สุดเกี่ยวกับนวัตกรรม ลงทะเบียนเพื่อรับพวกเขาทางอีเมล

ติดตามเรา