From d0161bb8f1049aeda44b0bb7c32659f1fe6cd819 Mon Sep 17 00:00:00 2001 From: brusnitsyn Date: Wed, 5 Aug 2026 08:58:47 +0900 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D1=85=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=BD=D0=B0=20dblib?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 1 - app/Providers/AppServiceProvider.php | 10 ++++++++ config/database.php | 36 ++++++++++++++++++---------- 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/.env.example b/.env.example index ee992a8..0288882 100644 --- a/.env.example +++ b/.env.example @@ -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= diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 37c65f4..1a8582b 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -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); + }); } } diff --git a/config/database.php b/config/database.php index dd48719..552d287 100644 --- a/config/database.php +++ b/config/database.php @@ -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'), - ] ], ],