Procházet zdrojové kódy

Fix better error management in migration

Laurent Destailleur před 4 roky
rodič
revize
6f75e24fd7
2 změnil soubory, kde provedl 16 přidání a 6 odebrání
  1. 2 1
      .travis.yml
  2. 14 5
      htdocs/install/upgrade2.php

+ 2 - 1
.travis.yml

@@ -400,7 +400,8 @@ script:
   php step5.php 12.0.0 13.0.0 > $TRAVIS_BUILD_DIR/upgrade12001300-3.log
 
   # Enable modules not enabled into original dump
-  php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_SUPPLIERPROPOSAL,MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKET,MAIN_MODULE_ACCOUNTING,MAIN_MODULE_MRP,MAIN_MODULE_RECRUITMENT > $TRAVIS_BUILD_DIR/enablemodule.log
+  php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_SUPPLIERPROPOSAL,MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKET,MAIN_MODULE_ACCOUNTING,MAIN_MODULE_MRP > $TRAVIS_BUILD_DIR/enablemodule.log
+  php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_RECEPTION,MAIN_MODULE_RECRUITMENT > $TRAVIS_BUILD_DIR/enablemodule.log
   echo $?
   cd -
   set +e

+ 14 - 5
htdocs/install/upgrade2.php

@@ -509,7 +509,11 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ
 		{
 			$listofmodules[$value] = 'forceactivate';
 		}
-		migrate_reload_modules($db, $langs, $conf, $listofmodules, 1);
+
+		$resultreloadmodules = migrate_reload_modules($db, $langs, $conf, $listofmodules, 1);
+		if ($resultreloadmodules < 0) {
+			$error++;
+		}
 	}
 
 
@@ -4283,7 +4287,7 @@ function migrate_delete_old_dir($db, $langs, $conf)
  * @param	Conf		$conf			Object conf
  * @param	array		$listofmodule	List of modules
  * @param   int         $force          1=Reload module even if not already loaded
- * @return	void
+ * @return	int							<0 if KO, >0 if OK
  */
 function migrate_reload_modules($db, $langs, $conf, $listofmodule = array(), $force = 0)
 {
@@ -4497,12 +4501,15 @@ function migrate_reload_modules($db, $langs, $conf, $listofmodule = array(), $fo
 						//$mod->remove('noboxes');
 						$mod->init($reloadmode);
 					} else {
-						dolibarr_install_syslog('Failed to include '.strtolower($moduletoreloadshort).'/core/modules/mod'.$moduletoreloadshort.'.class.php');
+						dolibarr_install_syslog('Failed to include '.strtolower($moduletoreloadshort).'/core/modules/mod'.$moduletoreloadshort.'.class.php', LOG_ERR);
+						print "Error, can't find module with name ".$moduletoreload."\n";
+						return -1;
 					}
 				}
 			} else {
-				dolibarr_install_syslog("Error, can't find module with name ".$moduletoreload, LOG_WARNING);
-				print "Error, can't find module with name ".$moduletoreload;
+				dolibarr_install_syslog("Error, can't find module with name ".$moduletoreload, LOG_ERR);
+				print "Error, can't find module with name ".$moduletoreload."\n";
+				return -1;
 			}
 		}
 
@@ -4516,6 +4523,8 @@ function migrate_reload_modules($db, $langs, $conf, $listofmodule = array(), $fo
 			print '</td></tr>';
 		}
 	}
+
+	return 1;
 }