@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 на ваши конкретные значения.