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:
friendica 2012-07-23 15:57:40 -07:00
parent b20a80bf39
commit 0d631cc08c
2 changed files with 10 additions and 5 deletions

View file

@ -747,9 +747,10 @@ if(! function_exists('check_config')) {
// If the update fails or times-out completely you may need to
// delete the config entry to try again.
if(get_config('database','update_' . $x))
$t = get_config('database','update_' . $x);
if($t !== false)
break;
set_config('database','update_' . $x, '1');
set_config('database','update_' . $x, time());
// call the specific update
@ -772,13 +773,14 @@ if(! function_exists('check_config')) {
. 'Content-transfer-encoding: 8bit' );
//try the logger
logger('CRITICAL: Update Failed: '. $x);
break;
}
else
else {
set_config('database','update_' . $x, 'success');
set_config('system','build', $x + 1);
}
}
}
set_config('system','build', DB_UPDATE_VERSION);
}
}
}

View file

@ -471,6 +471,9 @@ function admin_page_dbsync(&$a) {
if($a->argc > 3 && intval($a->argv[3]) && $a->argv[2] === 'mark') {
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);
goaway($a->get_baseurl(true) . '/admin/dbsync');
}