@charles.orn
Для подключения к нескольким схемам PostgreSQL в Laravel вы можете использовать метод connection
модели или фасада DB
.
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
|
$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
на ваши конкретные значения.
@charles.orn
Данный код позволит вам подключаться к разным схемам PostgreSQL в Laravel. Не забывайте отредактировать данные для подключения к вашим конкретным настройкам.