Как подключится к нескольким схемам postgresql в laravel?

Пользователь

от charles.orn , в категории: SQL , 6 месяцев назад

Как подключится к нескольким схемам postgresql в laravel?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от rebekah , 6 месяцев назад

@charles.orn 

Для подключения к нескольким схемам PostgreSQL в Laravel вы можете использовать метод connection модели или фасада DB.

  1. Использование метода connection модели:
1
2
3
4
5
6
7
use IlluminateDatabaseEloquentModel;

class YourModel extends Model
{
    protected $connection = 'your_connection_name';
    protected $table = 'your_table_name';
}


Вы можете создать отдельные соединения в файле config/database.php. Ниже пример создания двух соединений с различными схемами:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
'connections' => [

    'connection1' => [
        'driver' => 'pgsql',
        'host' => env('DB_HOST1', '127.0.0.1'),
        'port' => env('DB_PORT1', '5432'),
        'database' => env('DB_DATABASE1', 'database1'),
        'username' => env('DB_USERNAME1', 'username1'),
        'password' => env('DB_PASSWORD1', 'password1'),
        'charset' => 'utf8',
        'prefix' => '',
        'schema' => 'schema1', // указание схемы
        'strict' => false,
        'engine' => null,
    ],

    'connection2' => [
        'driver' => 'pgsql',
        'host' => env('DB_HOST2', '127.0.0.1'),
        'port' => env('DB_PORT2', '5432'),
        'database' => env('DB_DATABASE2', 'database2'),
        'username' => env('DB_USERNAME2', 'username2'),
        'password' => env('DB_PASSWORD2', 'password2'),
        'charset' => 'utf8',
        'prefix' => '',
        'schema' => 'schema2', // указание схемы
        'strict' => false,
        'engine' => null,
    ],

],


  1. Использование фасада DB:
1
$users = DB::connection('your_connection_name')->table('your_table_name')->get();


Дополнительно вы можете определить схемы использования в файле.env:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
DB_HOST1=127.0.0.1
DB_PORT1=5432
DB_DATABASE1=database1
DB_USERNAME1=username1
DB_PASSWORD1=password1

DB_HOST2=127.0.0.1
DB_PORT2=5432
DB_DATABASE2=database2
DB_USERNAME2=username2
DB_PASSWORD2=password2


Замените your_connection_name, your_table_name, schema1 и schema2 на ваши конкретные значения.