hopefully better update handling - never update the current DB version or continue with other updates if there was a failure of any individual update.
This commit is contained in:
parent
b20a80bf39
commit
0d631cc08c
12
boot.php
12
boot.php
|
@ -747,9 +747,10 @@ if(! function_exists('check_config')) {
|
||||||
// If the update fails or times-out completely you may need to
|
// If the update fails or times-out completely you may need to
|
||||||
// delete the config entry to try again.
|
// delete the config entry to try again.
|
||||||
|
|
||||||
if(get_config('database','update_' . $x))
|
$t = get_config('database','update_' . $x);
|
||||||
|
if($t !== false)
|
||||||
break;
|
break;
|
||||||
set_config('database','update_' . $x, '1');
|
set_config('database','update_' . $x, time());
|
||||||
|
|
||||||
// call the specific update
|
// call the specific update
|
||||||
|
|
||||||
|
@ -772,13 +773,14 @@ if(! function_exists('check_config')) {
|
||||||
. 'Content-transfer-encoding: 8bit' );
|
. 'Content-transfer-encoding: 8bit' );
|
||||||
//try the logger
|
//try the logger
|
||||||
logger('CRITICAL: Update Failed: '. $x);
|
logger('CRITICAL: Update Failed: '. $x);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
set_config('database','update_' . $x, 'success');
|
set_config('database','update_' . $x, 'success');
|
||||||
|
set_config('system','build', $x + 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
set_config('system','build', DB_UPDATE_VERSION);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -471,6 +471,9 @@ function admin_page_dbsync(&$a) {
|
||||||
|
|
||||||
if($a->argc > 3 && intval($a->argv[3]) && $a->argv[2] === 'mark') {
|
if($a->argc > 3 && intval($a->argv[3]) && $a->argv[2] === 'mark') {
|
||||||
set_config('database', 'update_' . intval($a->argv[3]), 'success');
|
set_config('database', 'update_' . intval($a->argv[3]), 'success');
|
||||||
|
$curr = get_config('system','build');
|
||||||
|
if(intval($curr) == intval($a->argv[3]))
|
||||||
|
set_config('system','build',intval($curr) + 1);
|
||||||
info( t('Update has been marked successful') . EOL);
|
info( t('Update has been marked successful') . EOL);
|
||||||
goaway($a->get_baseurl(true) . '/admin/dbsync');
|
goaway($a->get_baseurl(true) . '/admin/dbsync');
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue