Def. COAs. Changed query_size in users table to unsigned tinyint(1)
[fa-stable.git] / admin / inst_upgrade.php
index 9691b22e0eedeb4aa15bf0f1bf2958d09031b11f..e948d89823b6f0e4fd4d74391a6711fbec79724e 100644 (file)
@@ -52,7 +52,7 @@ function get_installers()
 //
 //     Apply one differential data set.
 //
-function upgrade_step($index, $conn) 
+function upgrade_step($index, $company, $conn) 
 {
        global $path_to_root, $installers;
 
@@ -71,14 +71,16 @@ function upgrade_step($index, $conn)
 
                        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."));
@@ -104,17 +106,19 @@ if (get_post('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;