From 94db40a742dded71f80f85821cd3da5f462a4757 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Mon, 30 Dec 2019 13:17:09 +0100 Subject: [PATCH] Fix PostgreSQL install (#2735) * Fix PostgreSQL install Fix https://github.com/FreshRSS/FreshRSS/issues/2732 When username is different from database name * Add more comments https://github.com/FreshRSS/FreshRSS/pull/2735/files/2b7807d1b3fdd0dc34538faad465934fb737fa3a#r361846714 --- lib/lib_install.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/lib_install.php b/lib/lib_install.php index 5ea1b4d2b..29dbc7b67 100644 --- a/lib/lib_install.php +++ b/lib/lib_install.php @@ -87,15 +87,19 @@ function initDb() { $db['pdo_options'][PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $conf->db = $db; //TODO: Remove this Minz limitation "Indirect modification of overloaded property" + //Attempt to auto-create database if it does not already exist if ($db['type'] !== 'sqlite') { Minz_ModelPdo::$usesSharedPdo = false; $dbBase = isset($db['base']) ? $db['base'] : ''; - $db['base'] = ''; + //For first connection, use default database for PostgreSQL, empty database for MySQL / MariaDB: + $db['base'] = $db['type'] === 'pgsql' ? 'postgres' : ''; $conf->db = $db; //First connection without database name to create the database $databaseDAO = FreshRSS_Factory::createDatabaseDAO(); + //Restore final database parameters for auto-creation and for future connections $db['base'] = $dbBase; $conf->db = $db; + //Perfom database auto-creation $databaseDAO->create(); }