diff --git a/src/Phinx/Util/Util.php b/src/Phinx/Util/Util.php index 785b1f4a9..82a2e52ed 100644 --- a/src/Phinx/Util/Util.php +++ b/src/Phinx/Util/Util.php @@ -385,6 +385,8 @@ public static function parseDsn(string $dsn): array // filter out everything except the matched groups $config = array_intersect_key($parsed, array_flip(['adapter', 'user', 'pass', 'host', 'port', 'name'])); $config = array_filter($config); + // URL-decode all parts + $config = array_map('rawurldecode', $config); parse_str($parsed['query'] ?? '', $query); $config = array_merge($query, $config);