Browse Source

Fix postgres not supporting unix_socket.

While it was documented as working, it totally didn't work.

Refs #6368
Mark Story 11 years ago
parent
commit
bf03c9f970
1 changed files with 5 additions and 1 deletions
  1. 5 1
      src/Database/Driver/Postgres.php

+ 5 - 1
src/Database/Driver/Postgres.php

@@ -57,8 +57,12 @@ class Postgres extends \Cake\Database\Driver
             PDO::ATTR_PERSISTENT => $config['persistent'],
             PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
         ];
+        if (empty($config['unix_socket'])) {
+            $dsn = "pgsql:host={$config['host']};port={$config['port']};dbname={$config['database']}";
+        } else {
+            $dsn = "pgsql:dbname={$config['database']}";
+        }
 
-        $dsn = "pgsql:host={$config['host']};port={$config['port']};dbname={$config['database']}";
         $this->_connect($dsn, $config);
         $this->_connection = $connection = $this->connection();
         if (!empty($config['encoding'])) {