//
// Apply one differential data set.
//
-function upgrade_step($index, $conn)
+function upgrade_step($index, $company, $conn)
{
global $path_to_root, $installers;
error_log(sprintf(_("Database upgrade for company '%s' (%s:%s*) started..."),
$conn['name'], $conn['dbname'], $conn['tbpref']));
-
+
if ($sql != '')
- $ret &= db_import($path_to_root.'/sql/'.$sql, $conn, $force);
+ $ret &= db_import($path_to_root.'/sql/'.$sql, $conn, $force, true);
- $ret &= $inst->install($pref, $force);
+ $ret &= $inst->install($company, $force);
- error_log(_("Database upgrade finished."));
+ if (!$ret && is_callable(array($inst, 'post_fail')))
+ $inst->post_fail($pref);
+ error_log(_("Database upgrade finished."));
} else
if ($state!==true) {
display_error(_("Upgrade cannot be done because database has been already partially upgraded. Please downgrade database to clean previous version or try forced upgrade."));
continue;
}
// create security backup
- db_backup($conn, 'no', 'Security backup before upgrade', $conn['tbpref']);
+ db_backup($conn, 'no', 'Security backup before upgrade');
// apply all upgrade data
foreach ($installers as $i => $inst)
{
- $ret = upgrade_step($i, $conn);
+ $ret = upgrade_step($i, $comp, $conn);
if (!$ret)
+ {
display_error(
sprintf(_("Database upgrade to version %s failed for company '%s'."),
$inst->version, $conn['name'])
.'<br>'
._('You should restore company database from latest backup file'));
+ }
}
// db_close($conn); ?
if (!$ret) break;
$_SESSION["wa_current_user"]->prefs = new user_prefs($user);
display_notification(_('All companies data has been successfully updated'));
}
- unset($_SESSION['SysPrefs']); // re-read system setup
- $_SESSION['SysPrefs'] = new sys_prefs();
+ refresh_sys_prefs(); // re-read system setup
$Ajax->activate('_page_body');
}