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

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

от willa_will , в категории: SQL , 10 месяцев назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от jensen , 9 месяцев назад

@willa_will 

Для подключения к нескольким схемам PostgreSQL в Laravel, вы можете использовать различные подключения к базе данных в файле конфигурации .env .

  1. Добавьте несколько подключений в файле .env , например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
DB_CONNECTION=default
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=database1
DB_USERNAME=username1
DB_PASSWORD=password1

DB_CONNECTION_SECOND=default
DB_HOST_SECOND=127.0.0.1
DB_PORT_SECOND=5432
DB_DATABASE_SECOND=database2
DB_USERNAME_SECOND=username2
DB_PASSWORD_SECOND=password2


  1. Добавьте соответствующие настройки подключения в файле 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' => [

    'default' => [
        'driver' => env('DB_CONNECTION', 'pgsql'),
        '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' => 'utf8mb4',
        'prefix' => '',
        'prefix_indexes' => true,
        'schema' => 'public',
        'sslmode' => 'prefer',
    ],

    'second' => [
        'driver' => env('DB_CONNECTION_SECOND', 'pgsql'),
        'host' => env('DB_HOST_SECOND', '127.0.0.1'),
        'port' => env('DB_PORT_SECOND', '5432'),
        'database' => env('DB_DATABASE_SECOND', 'forge'),
        'username' => env('DB_USERNAME_SECOND', 'forge'),
        'password' => env('DB_PASSWORD_SECOND', ''),
        'charset' => 'utf8mb4',
        'prefix' => '',
        'prefix_indexes' => true,
        'schema' => 'public',
        'sslmode' => 'prefer',
    ],

],


  1. Теперь вы можете использовать различные подключения в своих моделях или запросах следующим образом:
1
2
3
4
5
// Используйте подключение "default"
$users = DB::connection('default')->select('select * from users');

// Используйте подключение "second"
$products = DB::connection('second')->select('select * from products');


Вы можете продолжить использовать фасады DB или использовать модели Eloquent с заданными подключениями.