From 0d631cc08c21997d8e97f84aaaa12d2b2cafeffa Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 23 Jul 2012 15:57:40 -0700 Subject: [PATCH] hopefully better update handling - never update the current DB version or continue with other updates if there was a failure of any individual update. --- boot.php | 12 +++++++----- mod/admin.php | 3 +++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/boot.php b/boot.php index 018b3b9f..340ef139 100644 --- a/boot.php +++ b/boot.php @@ -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); } } } diff --git a/mod/admin.php b/mod/admin.php index c8ed7a53..05af01aa 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -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'); }