@@ -106,18 +106,21 @@ private function parseDsn(string $dsn, ?array $config = null): array |
106 | 106 | { |
107 | 107 | $parsedDsn = Dsn::parseFirst($dsn); |
108 | 108 |
|
| 109 | + // enqueue scheme => dbal scheme |
| 110 | + // out of the box dbal 4 schemes: pdo_mysql, pdo_sqlite, pdo_pgsql, pdo_oci, oci8, ibm_db2, pdo_sqlsrv, mysqli, pgsql, sqlsrv, sqlite3 |
| 111 | + // in case of multiple drivers like mysqli vs pdo_mysql the pdo variant is preferred |
109 | 112 | $supported = [ |
110 | | - 'db2' => 'db2', |
111 | | - 'ibm-db2' => 'ibm-db2', |
112 | | - 'mssql' => 'mssql', |
| 113 | + 'db2' => 'ibm_db2', |
| 114 | + 'ibm-db2' => 'ibm_db2', |
| 115 | + 'mssql' => 'pdo_sqlsrv', |
113 | 116 | 'sqlsrv+pdo' => 'pdo_sqlsrv', |
114 | | - 'mysql' => 'mysql', |
115 | | - 'mysql2' => 'mysql2', |
| 117 | + 'mysql' => 'pdo_mysql', |
| 118 | + 'mysql2' => 'mysqli', |
116 | 119 | 'mysql+pdo' => 'pdo_mysql', |
117 | 120 | 'pgsql' => 'pgsql', |
118 | | - 'postgres' => 'postgres', |
| 121 | + 'postgres' => 'pdo_pgsql', |
119 | 122 | 'pgsql+pdo' => 'pdo_pgsql', |
120 | | - 'sqlite' => 'sqlite', |
| 123 | + 'sqlite' => 'sqlite3', |
121 | 124 | 'sqlite3' => 'sqlite3', |
122 | 125 | 'sqlite+pdo' => 'pdo_sqlite', |
123 | 126 | ]; |
@@ -148,15 +151,11 @@ private function parseDsn(string $dsn, ?array $config = null): array |
148 | 151 | $dsn = $parsedDsn->getScheme().'://root@localhost'; |
149 | 152 | } |
150 | 153 |
|
151 | | - $doctrineSupported = []; |
152 | | - foreach ($supported as $k => $v) { |
153 | | - $doctrineSupported[$this->prepareDsnForDoctrine($k)] = $this->prepareDsnForDoctrine($v); |
154 | | - } |
155 | | - $dsnParser = new DsnParser($doctrineSupported); |
| 154 | + $dsnParser = new DsnParser($supported); |
156 | 155 |
|
157 | 156 | return [ |
158 | 157 | 'lazy' => true, |
159 | | - 'connection' => $dsnParser->parse($this->prepareDsnForDoctrine($dsn)), |
| 158 | + 'connection' => $dsnParser->parse($dsn), |
160 | 159 | ]; |
161 | 160 | } |
162 | 161 |
|
@@ -169,9 +168,4 @@ private function parseDsn(string $dsn, ?array $config = null): array |
169 | 168 | 'connection' => ['url' => $dsn], |
170 | 169 | ]; |
171 | 170 | } |
172 | | - |
173 | | - private function prepareDsnForDoctrine(string $dsn): string |
174 | | - { |
175 | | - return preg_replace('/^([a-z0-9]+)\+pdo/i', 'pdo-$1', $dsn); |
176 | | - } |
177 | 171 | } |