Possible fix issue 4611: Don't write to database before it is created

2022.09-rc
Michael 2018-03-17 09:04:38 +00:00
rodzic e2f5350e61
commit 782d692b5a
2 zmienionych plików z 12 dodań i 10 usunięć

Wyświetl plik

@ -540,7 +540,7 @@ function load_database_rem($v, $i) {
}
function load_database() {
$errors = DBStructure::update(false, true);
$errors = DBStructure::update(false, true, true);
return $errors;
}

Wyświetl plik

@ -203,8 +203,8 @@ class DBStructure
* @param array $definition An array of the definition tables
* @return string Empty string if the update is successful, error messages otherwise
*/
public static function update($verbose, $action, array $tables = null, array $definition = null) {
if ($action) {
public static function update($verbose, $action, $install = false, array $tables = null, array $definition = null) {
if ($action && !$install) {
Config::set('system', 'maintenance', 1);
Config::set('system', 'maintenance_reason', L10n::t(': Database update', DBM::date().' '.date('e')));
}
@ -455,7 +455,9 @@ class DBStructure
}
if ($action) {
Config::set('system', 'maintenance_reason', L10n::t('%s: updating %s table.', DBM::date().' '.date('e'), $name));
if (!$install) {
Config::set('system', 'maintenance_reason', L10n::t('%s: updating %s table.', DBM::date().' '.date('e'), $name));
}
// Ensure index conversion to unique removes duplicates
if ($is_unique && ($temp_name != $name)) {
@ -505,15 +507,15 @@ class DBStructure
}
}
if ($action) {
if ($action && !$install) {
Config::set('system', 'maintenance', 0);
Config::set('system', 'maintenance_reason', '');
}
if ($errors) {
Config::set('system', 'dbupdate', DB_UPDATE_FAILED);
} else {
Config::set('system', 'dbupdate', DB_UPDATE_SUCCESSFUL);
if ($errors) {
Config::set('system', 'dbupdate', DB_UPDATE_FAILED);
} else {
Config::set('system', 'dbupdate', DB_UPDATE_SUCCESSFUL);
}
}
return $errors;