From 377fe3adaab82bda7a6e1ced70d5f5273d6d44d3 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 16 Oct 2014 10:30:47 +0200 Subject: Don't use EventLog during update if db is too old --- apis/update.inc.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'apis') diff --git a/apis/update.inc.php b/apis/update.inc.php index 384fe0be..1912a3c1 100644 --- a/apis/update.inc.php +++ b/apis/update.inc.php @@ -4,7 +4,8 @@ $targetVersion = Database::getExpectedSchemaVersion(); function fatal($message) { - EventLog::failure($message); + if (tableExists('eventlog')) + EventLog::failure($message); die("$message\n"); } @@ -39,7 +40,8 @@ while ($currentVersion < $targetVersion) { } Message::addSuccess('db-update-done'); -Eventlog::info("Database updated to version $currentVersion"); +if (tableExists('eventlog')) + EventLog::info("Database updated to version $currentVersion"); Util::redirect('index.php?do=Main'); //////////////// @@ -48,7 +50,7 @@ function tableHasColumn($table, $column) { $table = preg_replace('/\W/', '', $table); $column = preg_replace('/\W/', '', $column); - $res = Database::simpleQuery("DESCRIBE `$table`", array(), false); + $res = Database::simpleQuery("DESCRIBE `$table`", array(), true); if ($res !== false) { while ($row = $res->fetch(PDO::FETCH_ASSOC)) { if ((is_array($column) && in_array($row['Field'], $column)) || (is_string($column) && $row['Field'] === $column)) @@ -62,7 +64,7 @@ function tableDropColumn($table, $column) { $table = preg_replace('/\W/', '', $table); $column = preg_replace('/\W/', '', $column); - $res = Database::simpleQuery("DESCRIBE `$table`", array(), false); + $res = Database::simpleQuery("DESCRIBE `$table`", array(), true); if ($res !== false) { while ($row = $res->fetch(PDO::FETCH_ASSOC)) { if ((is_array($column) && in_array($row['Field'], $column)) || (is_string($column) && $row['Field'] === $column)) @@ -73,7 +75,7 @@ function tableDropColumn($table, $column) function tableExists($table) { - $res = Database::simpleQuery("SHOW TABLES", array(), false); + $res = Database::simpleQuery("SHOW TABLES", array(), true); while ($row = $res->fetch(PDO::FETCH_ASSOC)) { if ($row['Tables_in_openslx'] === $table) return true; -- cgit v1.2.3-55-g7522