From 640379d7612e1e61cb8a91ecfe5d44ef0a8aa57a Mon Sep 17 00:00:00 2001 From: Janusz Dobrowolski Date: Fri, 1 Apr 2011 13:36:45 +0200 Subject: [PATCH] Fixed upgrade routines from 2.1.x versions. --- admin/db/company_db.inc | 2 +- sql/alter2.2.php | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/admin/db/company_db.inc b/admin/db/company_db.inc index 64f44bc..c1197dc 100644 --- a/admin/db/company_db.inc +++ b/admin/db/company_db.inc @@ -37,7 +37,7 @@ function get_company_pref($prefs = null, $tbpref = null) static $cached; // retrieve values from db once a request. Some values can't be cached between requests // to ensure prefs integrity for all usrs (e.g. gl_close_date). - if (!$cached) { // cached preferences + if (!$cached || !isset($_SESSION['SysPrefs'])) { // cached preferences $_SESSION['SysPrefs'] = new sys_prefs(); diff --git a/sql/alter2.2.php b/sql/alter2.2.php index c534523..fcf9f60 100644 --- a/sql/alter2.2.php +++ b/sql/alter2.2.php @@ -118,9 +118,13 @@ class fa2_2 { $patchcnt = 0; if (!$this->beta) { $n = 16; - if (check_table($pref, 'company', 'custom1_name')) $patchcnt++; - if (!check_table($pref, 'company', 'profit_loss_year_act')) $patchcnt++; - if (!check_table($pref, 'company', 'login_tout')) $patchcnt++; + if (check_table($pref, 'company')) // skip in 2.3 + $n -= 3; + else { + if (check_table($pref, 'company', 'custom1_name')) $patchcnt++; + if (!check_table($pref, 'company', 'profit_loss_year_act')) $patchcnt++; + if (!check_table($pref, 'company', 'login_tout')) $patchcnt++; + } if (!check_table($pref, 'stock_category', 'dflt_no_sale')) $patchcnt++; if (!check_table($pref, 'users', 'sticky_doc_date')) $patchcnt++; if (!check_table($pref, 'users', 'startup_tab')) $patchcnt++; @@ -303,6 +307,9 @@ function sanitize_database($pref, $test = false) { } } + if (empty($keys)) { // comments table have no primary key, so let's give up + continue; + } if ($test) error_log("Table $table (".implode(',',$keys)."):(".implode(',',$textcols)."):"); @@ -326,9 +333,10 @@ function sanitize_database($pref, $test = false) { $key[] = $k.'=\''.$rec[substr($k,1,-1)].'\''; } $sql .= implode( ' AND ', $key); - if ($test) + if ($test) { + error_log($sql); error_log("\t(".implode(',',$val).") updated"); - else + } else db_query($sql, 'cannot update record'); } } -- 2.30.2