From 3cd09f2b09e69821b8f938b2c54f9c12dbb303f0 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Sat, 15 Mar 2014 13:28:20 +0100 Subject: [PATCH] Added PostgreSQL version warning on upgrade --- lib/private/util.php | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/lib/private/util.php b/lib/private/util.php index fc78566e45..54e04ce4d7 100755 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -485,12 +485,46 @@ class OC_Util { ); } + $errors = array_merge($errors, self::checkDatabaseVersion()); + // Cache the result of this function \OC::$session->set('checkServer_suceeded', count($errors) == 0); return $errors; } + /** + * Check the database version + * @return array errors array + */ + public static function checkDatabaseVersion() { + $errors = array(); + $dbType = \OC_Config::getValue('dbtype', 'sqlite'); + if ($dbType === 'pgsql') { + // check PostgreSQL version + try { + $result = \OC_DB::executeAudited('SHOW SERVER_VERSION'); + $data = $result->fetchRow(); + if (isset($data['server_version'])) { + $version = $data['server_version']; + if (version_compare($version, '9.0.0', '<')) { + $errors[] = array( + 'error' => 'PostgreSQL >= 9 required', + 'hint' => 'Please upgrade your database version' + ); + } + } + } + catch (\Doctrine\DBAL\DBALException $e){ + $errors[] = array( + 'error' => 'PostgreSQL >= 9 required' + ); + } + } + return $errors; + } + + /** * @brief check if there are still some encrypted files stored * @return boolean