Переход на dblib

This commit is contained in:
brusnitsyn
2026-08-05 08:58:47 +09:00
parent 2c6d4a04cc
commit d0161bb8f1
3 changed files with 33 additions and 14 deletions

View File

@@ -28,7 +28,6 @@ DB_USERNAME=root
DB_PASSWORD=
MIS_DB_HOST=
MIS_DB_PORT=1433
MIS_DB_DATABASE=
MIS_DB_USERNAME=
MIS_DB_PASSWORD=

View File

@@ -2,6 +2,7 @@
namespace App\Providers;
use App\Database\Grammars\CustomOdbcGrammar;
use App\Domain\Patient\Contracts\PatientRepositoryInterface;
use App\Infrastructure\Database\Repositories\Patient\PatientRepository;
use App\Models\DepartmentPatient;
@@ -12,6 +13,7 @@ use App\Observers\ReportDutyObserver;
use App\Observers\ReportNurseObserver;
use App\Services\Cache\CacheInvalidator;
use App\Services\Cache\CacheKeyBuilder;
use Illuminate\Database\Connection;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
@@ -41,5 +43,13 @@ class AppServiceProvider extends ServiceProvider
ReportNurse::observe(ReportNurseObserver::class);
ReportDuty::observe(ReportDutyObserver::class);
DepartmentPatient::observe(DepartmentPatientObserver::class);
// Подключение DBLIB для MSSQL
Connection::resolverFor('dblib', function ($connection, $database, $prefix, $config) {
// Создаём PDO через DBLIB
$dsn = "dblib:host={$config['host']};dbname={$config['database']}";
$pdo = new \PDO($dsn, $config['username'], $config['password'], $config['options'] ?? []);
return new Connection($pdo, $database, $prefix, $config);
});
}
}

View File

@@ -114,22 +114,32 @@ return [
],
// МИС
// 'mis' => [
// 'driver' => 'sqlsrv',
// 'url' => env('MIS_DB_URL'),
// 'host' => env('MIS_DB_HOST', 'localhost'),
// 'port' => env('MIS_DB_PORT', '1433'),
// 'database' => env('MIS_DB_DATABASE', 'laravel'),
// 'username' => env('MIS_DB_USERNAME', 'root'),
// 'password' => env('MIS_DB_PASSWORD', ''),
// 'charset' => env('MIS_DB_CHARSET', 'utf8'),
// 'prefix' => '',
// 'prefix_indexes' => true,
// 'encrypt' => env('DB_ENCRYPT', 'no'),
// //'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'true'),
// 'options' => [
// 'TrustServerCertificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'true'),
// ]
// ],
'mis' => [
'driver' => 'sqlsrv',
'url' => env('MIS_DB_URL'),
'host' => env('MIS_DB_HOST', 'localhost'),
'port' => env('MIS_DB_PORT', '1433'),
'database' => env('MIS_DB_DATABASE', 'laravel'),
'username' => env('MIS_DB_USERNAME', 'root'),
'password' => env('MIS_DB_PASSWORD', ''),
'charset' => env('MIS_DB_CHARSET', 'utf8'),
'driver' => 'dblib',
'host' => env('MIS_DB_HOST'),
'database' => env('MIS_DB_DATABASE'),
'username' => env('MIS_DB_USERNAME'),
'password' => env('MIS_DB_PASSWORD'),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
'encrypt' => env('DB_ENCRYPT', 'no'),
//'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'true'),
'options' => [
'TrustServerCertificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'true'),
]
],
],