diff --git a/.travis.yml b/.travis.yml
index c97b547e499..6c5833ccfdb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -91,13 +91,13 @@ before_script:
script:
- cd htdocs/install
- date
-# - php upgrade.php 3.4.0 3.5.0 > upgrade.log
-# - php upgrade2.php 3.4.0 3.5.0 > upgrade2.log
- - php upgrade.php 3.5.0 3.6.0 >> upgrade.log
- - php upgrade2.php 3.5.0 3.6.0 >> upgrade2.log
- - php upgrade.php 3.6.0 3.7.0 >> upgrade.log
+# - php upgrade.php 3.4.0 3.5.0 ignoredbversion > upgrade.log
+# - php upgrade2.php 3.4.0 3.5.0 ignoredbversion > upgrade2.log
+ - php upgrade.php 3.5.0 3.6.0 ignoredbversion >> upgrade.log
+ - php upgrade2.php 3.5.0 3.6.0 ignoredbversion >> upgrade2.log
+ - php upgrade.php 3.6.0 3.7.0 ignoredbversion >> upgrade.log
# - cat upgrade360370.log
- - php upgrade2.php 3.6.0 3.7.0 >> upgrade2.log
+ - php upgrade2.php 3.6.0 3.7.0 ignoredbversion >> upgrade2.log
# - cat upgrade2.log
- cd ../..
- date
diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php
index 1e1ba08b6f9..126c0896c80 100644
--- a/htdocs/install/upgrade.php
+++ b/htdocs/install/upgrade.php
@@ -19,9 +19,11 @@
* Upgrade scripts can be ran from command line with syntax:
*
* cd htdocs/install
- * php upgrade.php 3.4.0 3.5.0
+ * php upgrade.php 3.4.0 3.5.0 [dirmodule|ignoredbversion]
* php upgrade2.php 3.4.0 3.5.0
*
+ * Option 'dirmodule' allows to provide a path for an external module, so we migrate from command line a script from a module.
+ * Option 'ignoredbversion' allows to run migration even if database is a bugged database version.
* Return code is 0 if OK, >0 if error
*/
@@ -55,7 +57,8 @@ $setuplang=GETPOST("selectlang",'',3)?GETPOST("selectlang",'',3):'auto';
$langs->setDefaultLang($setuplang);
$versionfrom=GETPOST("versionfrom",'',3)?GETPOST("versionfrom",'',3):(empty($argv[1])?'':$argv[1]);
$versionto=GETPOST("versionto",'',3)?GETPOST("versionto",'',3):(empty($argv[2])?'':$argv[2]);
-$versionmodule=GETPOST("versionmodule",'',3)?GETPOST("versionmodule",'',3):(empty($argv[3])?'':$argv[3]);
+$dirmodule=GETPOST("dirmodule",'',3)?GETPOST("dirmodule",'',3):(empty($argv[3])?'':$argv[3]);
+$ignoredbversion=GETPOST('ignoredbversion','',3)?GETPOST('ignoredbversion','',3):(empty($argv[3])?'':$argv[3]);
$langs->load("admin");
$langs->load("install");
@@ -191,31 +194,34 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action')))
}
// Test database version is not forbidden for migration
- $dbversion_disallowed=array(
- array('type'=>'mysql','version'=>array(5,5,40)),
- array('type'=>'mysqli','version'=>array(5,5,40)),
- array('type'=>'mysql','version'=>array(5,5,41)),
- array('type'=>'mysqli','version'=>array(5,5,41))
- );
- $listofforbiddenversion='';
- foreach ($dbversion_disallowed as $dbversion_totest)
- {
- if ($dbversion_totest['type'] == $db->type) $listofforbiddenversion.=($listofforbiddenversion?', ':'').join('.',$dbversion_totest['version']);
- }
- foreach ($dbversion_disallowed as $dbversion_totest)
- {
- //print $db->type.' - '.join('.',$versionarray).' - '.versioncompare($dbversion_totest['version'],$versionarray)."
\n";
- if ($dbversion_totest['type'] == $db->type
- && (versioncompare($dbversion_totest['version'],$versionarray) == 0 || versioncompare($dbversion_totest['version'],$versionarray)<=-4 || versioncompare($dbversion_totest['version'],$versionarray)>=4)
- )
- {
- // Warning: database version too low.
- print '