0 коментари 5 мин. читање 3 јануари, 2026

Две DB на една Laravel instance (Multi Database Connection)

Во одредени случаи апликацијата има потреба од повеќе од една база на податоци. На пример: раздвојување на податоци за автентикација, трансакциски податоци или пристап до стара (legacy) база на податоци. Laravel веќе нуди поддршка за повеќекратни database конекции, и тоа на многу едноставен начин.

Во продолжение следува целосен и практичен водич како да поврзеш две бази на податоци во еден Laravel проект.


Чекор 1 Додавање конфигурација за втора база во .env

Прво, додади ги креденцијалите за втората база на податоци во .env фајлот:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database_one
DB_USERNAME=root
DB_PASSWORD=

DB2_CONNECTION=mysql
DB2_HOST=127.0.0.1
DB2_PORT=3306
DB2_DATABASE=database_two
DB2_USERNAME=root
DB2_PASSWORD=

Важно имињата на променливите да бидат различни (на пример DB2_...).


Чекор 2 Регистрирање на повеќе database конекции

Отвори го фајлот config/database.php и додади ја конфигурацијата за втората конекција:

'connections' => [

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST'),
        'port' => env('DB_PORT'),
        'database' => env('DB_DATABASE'),
        'username' => env('DB_USERNAME'),
        'password' => env('DB_PASSWORD'),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
    ],

    'mysql2' => [ // втора конекција
        'driver' => 'mysql',
        'host' => env('DB2_HOST'),
        'port' => env('DB2_PORT'),
        'database' => env('DB2_DATABASE'),
        'username' => env('DB2_USERNAME'),
        'password' => env('DB2_PASSWORD'),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
    ],

],

Името на конекцијата може да биде mysql2 или нешто друго според твоите потреби.


Чекор 3 Користење на втората конекција во Model

Ако сакаш одреден Model да користи втора база, само додади ја $connection променливата во моделот.

Пример: Produkt.php

class Produkt extends Model
{
    // database конекција
    protected $connection = 'mysql2';

    // име на табелата
    protected $table = 'products';
}

class User extends Model
{
  	// Стандардна конекција
    protected $connection = 'mysql';
}

Во овој пример, моделот Produkt експлицитно ја користи втората database конекција (mysql2).
Сите query-и преку овој модел ќе се извршуваат над базата mysql2, а табелата е рачно дефинирана преку $table.

Што со User моделот?

Моделот User ќе ја користи стандардната database конекција, дефинирана во config/database.php.
Затоа, не е задолжително да се додава $connection, бидејќи Laravel автоматски ја користи default конекцијата (обично mysql).


Чекор 4 Query Builder со втората конекција

Ако само одредени query-и треба да користат втора база, можеш директно да користиш:

DB::connection('mysql2')

Пример: SELECT

$data = DB::connection('mysql2')
    ->table('customers')
    ->get();

Пример: INSERT

DB::connection('mysql2')
    ->table('logs')
    ->insert([
        'message' => 'Тест конекција со база 2',
    ]);

Пример: Raw Query

DB::connection('mysql2')
    ->statement('DELETE FROM temp_data');

Заклучок

Laravel ја прави работата со повеќе database конекции исклучително едноставна.
Потребно е само:

  1. Да додадеш конфигурација во .env
  2. Да ја регистрираш конекцијата во database.php
  3. Да ја користиш во Model или преку Query Builder

Со правилна структура, апликацијата без проблем може да работи со две или повеќе бази на податоци, без разлика дали се работи за legacy системи или големи, скалабилни апликации.


Avatar photo
Напишано од

Мартин Рајовски

Јас сум програмер и администратор на форум. Кога не сум зафатен со решавање кодови или смирување форумски драми, обожавам да играм пинг-понг (барем мислам дека знам). Голем фан сум на тетоважи и опседнат со руската култура. Технолошки фанатик по ден, фотографски ентузијаст по ноќ – со други зборови, секогаш на лов по нова генијална идеја или совршена фотка!

Сите написи од овој автор
Добивај известувања
Извести ме за
guest
0 Коментари
Најнови
Најстари Со највеќе гласови
Мени
Заедница
Изглед
To top