Maqolalar

Loyihangizda bir nechta ma'lumotlar bazalaridan foydalanish uchun Laravelni qanday sozlash kerak

Odatda dasturiy ta'minotni ishlab chiqish loyihasi ma'lumotlarni tizimlashtirilgan tarzda saqlash uchun ma'lumotlar bazasidan foydalanishni o'z ichiga oladi.

Muayyan loyihalar uchun bir nechta ma'lumotlar bazasidan foydalanish kerak bo'lishi mumkin.

Laravel bilan bir nechta ma'lumotlar bazalaridan foydalanish uchun biz ramkani va xususan ulanishlar konfiguratsiya faylini sozlashimiz kerak.

Keling, bir nechta ma'lumotlar bazasidan foydalanish uchun Laravelni qanday sozlashni ko'rib chiqaylik.

Taxminiy o'qish vaqti: 4 daqiqada

Fayl database.php in config katalog

Ushbu fayl katalogda joylashgan config Laravel ilovangizdan.

Fayl ichida database.php mumkin defibir nechta ma'lumotlar bazasi ulanishlari. Har bir ulanish bo'lishi kerak defimassiv sifatida nited. Massiv quyidagi ma'lumotlarni o'z ichiga olishi kerak:

  • driver: foydalanish uchun ma'lumotlar bazasi drayveri;
  • host: ism host yoki manzil IP ma'lumotlar bazasi serveri;
  • port: ma'lumotlar bazasi serveri port raqami;
  • database: ma'lumotlar bazasi nomi;
  • username: ma'lumotlar bazasiga ulanish uchun foydalanuvchi nomi;
  • password: ma'lumotlar bazasiga ulanish uchun parol;

Masalan, quyidagi kod defiIkkita ma'lumotlar bazasi ulanishi mavjud, biri MySQL uchun, ikkinchisi PostgreSQL uchun:

'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',
        ],

JBga qanday ulanish mumkin

Keyin defiMa'lumotlar bazasi ulanishlariga ega bo'lganingizdan so'ng, ularni kodingizda ishlatishingiz mumkin Laravel. Buning uchun siz foydalanishingiz mumkin facade ma'lumotlar bazasidan. U yerda facade ma'lumotlar bazasi ma'lumotlar bazalari bilan o'zaro ishlash uchun yagona interfeysni ta'minlaydi.

Ma'lumotlar bazasi ulanishlari o'rtasida almashish uchun siz usuldan foydalanishingiz mumkin Connection() della facade Ma'lumotlar bazalari. Usul Connection() argument sifatida ma'lumotlar bazasi ulanishi nomini oladi.

Masalan, quyidagi kod MySQL DB dan pgsql DB ga o'tadi:

Innovatsion axborot byulleteni
Innovatsiyalar haqidagi eng muhim yangiliklarni o'tkazib yubormang. Ularni elektron pochta orqali olish uchun ro'yxatdan o'ting.
use Illuminate\Support\Facades\DB;

DB::connection('pgsql');

Ma'lumotlar bazasi ulanishiga o'tganingizdan so'ng, ma'lumotlar bazasi bilan so'rov qilish va o'zaro aloqada bo'lish uchun undan foydalanishingiz mumkin.

Laravelda bir nechta ma'lumotlar bazalaridan foydalanishning afzalliklari

Laravelda bir nechta ma'lumotlar bazalaridan foydalanishning ko'plab afzalliklari bor, jumladan:

  • Yaxshiroq ishlash: Bir nechta ma'lumotlar bazalaridan foydalanish har xil turdagi ma'lumotlarni ajratish orqali dastur ish faoliyatini yaxshilashi mumkin. Masalan, foydalanuvchi ma'lumotlarini bitta ma'lumotlar bazasida va mahsulot ma'lumotlarini boshqa ma'lumotlar bazasida saqlashingiz mumkin.
  • Kengaytirilgan xavfsizlik: Bir nechta ma'lumotlar bazalaridan foydalanish har xil turdagi ma'lumotlarni ajratish orqali dastur xavfsizligini yaxshilashi mumkin. Misol uchun, siz nozik ma'lumotlarni bitta ma'lumotlar bazasida va kamroq sezgir ma'lumotlarni boshqa ma'lumotlar bazasida saqlashingiz mumkin.
  • Kattaroq masshtablilik: Bir nechta ma'lumotlar bazalaridan foydalanish ma'lumotlaringizni bir nechta serverlar bo'ylab tarqatish imkonini berish orqali ilovangizni yanada kengaytirilishi mumkin.

Laravelda bir nechta ma'lumotlar bazalaridan foydalanish bo'yicha eng yaxshi amaliyotlar

Laravelda bir nechta ma'lumotlar bazalaridan foydalanish bo'yicha ba'zi eng yaxshi amaliyotlar:

  • Ma'lumotlar bazasi ulanishlari uchun qulay nomlardan foydalaning: Bu ma'lumotlar bazasi ulanishlarini aniqlash va boshqarishni osonlashtiradi.
  • Usuldan foydalaning Connection() biridan ketish DB boshqasiga - bu tasodifan yugurishdan qochishingizga yordam beradi So'rovlar sul ma'lumotlar bazasi noto'g'ri.
  • Ma'lumotlar bazasi sxemalarini boshqarish uchun ma'lumotlar bazasini ko'chirish tizimidan foydalaning - bu sizga ma'lumotlar bazasi sxemalarini barcha ma'lumotlar bazasida sinxronlashtirishga yordam beradi. ma'lumotlar bazasi.

xulosa

Laravel-da bir nechta ma'lumotlar bazalaridan foydalanish ilovangizning ishlashi, xavfsizligi va kengaytirilishini yaxshilashning ajoyib usuli bo'lishi mumkin. Ushbu maqolada tasvirlangan eng yaxshi amaliyotlarga rioya qilish orqali siz Laravel-da bir nechta ma'lumotlar bazalaridan samarali foydalanishingiz mumkin.

Tegishli o'qishlar

Ercole Palmeri

Innovatsion axborot byulleteni
Innovatsiyalar haqidagi eng muhim yangiliklarni o'tkazib yubormang. Ularni elektron pochta orqali olish uchun ro'yxatdan o'ting.

So'nggi maqolalar

Veeam to'lov dasturini himoya qilishdan tortib javob berish va tiklashgacha bo'lgan eng keng qamrovli yordamga ega

Veeam tomonidan ishlab chiqarilgan Coveware kiber tovlamachilik hodisalariga javob berish xizmatlarini taqdim etishda davom etadi. Coveware sud tibbiyoti va remediatsiya imkoniyatlarini taklif qiladi ...

23 Aprel 2024

Yashil va raqamli inqilob: prognozli texnik xizmat ko'rsatish neft va gaz sanoatini qanday o'zgartirmoqda

Bashoratli texnik xizmat ko'rsatish zavodlarni boshqarishga innovatsion va proaktiv yondashuv bilan neft va gaz sektorini inqilob qilmoqda.…

22 Aprel 2024

Buyuk Britaniyaning monopoliyaga qarshi regulyatori GenAI ustidan BigTech signalini oshiradi

Buyuk Britaniya CMA Big Tech kompaniyasining sun'iy intellekt bozoridagi xatti-harakatlari haqida ogohlantirish e'lon qildi. U yerda…

18 Aprel 2024

Casa Green: Italiyada barqaror kelajak uchun energiya inqilobi

Evropa Ittifoqi tomonidan binolarning energiya samaradorligini oshirish uchun ishlab chiqilgan "Yashil uylar" qarori qonunchilik jarayonini yakunladi ...

18 Aprel 2024