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'), - ] ], ],