diff --git a/htdocs/install/check.php b/htdocs/install/check.php
index ae599880dc0..df8254eee9f 100644
--- a/htdocs/install/check.php
+++ b/htdocs/install/check.php
@@ -210,13 +210,16 @@ else
}
print '';
print ''."\n";
-
- print '
| '.$langs->trans("Upgrade").' | ';
+
+ # Upgrade
+ $versionfrom='2.0.0';
+ $versionto='2.2.0';
+ print ' |
| '.$langs->trans("Upgrade").' '.$versionfrom.' -> '.$versionto.' | ';
print $langs->trans("UpgradeDesc").' | ';
print '';
if ($allowupgrade)
{
- print ''.$langs->trans("Start").'';
+ print ''.$langs->trans("Start").'';
}
else
{
@@ -224,7 +227,24 @@ else
}
print ' | ';
print '
'."\n";
-
+
+ # Upgrade
+ $versionfrom='2.1.0';
+ $versionto='2.2.0';
+ print '| '.$langs->trans("Upgrade").' '.$versionfrom.' -> '.$versionto.' | ';
+ print $langs->trans("UpgradeDesc").' | ';
+ print '';
+ if ($allowupgrade)
+ {
+ print ''.$langs->trans("Start").'';
+ }
+ else
+ {
+ print $langs->trans("NotAvailable");
+ }
+ print ' | ';
+ print '
'."\n";
+
print '';
print "\n";
}
diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php
index 1cedb3d39d1..c1144755054 100644
--- a/htdocs/install/upgrade.php
+++ b/htdocs/install/upgrade.php
@@ -33,7 +33,6 @@ define('MAIN_DB_PREFIX',$dolibarr_main_db_prefix);
require_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".lib.php");
require_once($dolibarr_main_document_root . "/conf/conf.class.php");
-$migfile='^2.1.0-2.2.0.sql$';
$grant_query='';
$etape = 2;
$ok = 0;
@@ -48,6 +47,8 @@ error_reporting($err);
$setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:'auto');
$langs->setDefaultLang($setuplang);
+$versionfrom=isset($_GET["versionfrom"])?$_GET["versionfrom"]:'';
+$versionto=isset($_GET["versionto"])?$_GET["versionto"]:'';
$langs->load("admin");
$langs->load("install");
@@ -66,6 +67,12 @@ if (! isset($_GET["action"]) || $_GET["action"] == "upgrade")
{
print ''.$langs->trans("DatabaseMigration").'
';
+ if (! $versionfrom && ! $versionto)
+ {
+ print 'Parameter versionfrom or version to missing.
';
+ exit;
+ }
+
print '';
$error=0;
@@ -132,13 +139,39 @@ if (! isset($_GET["action"]) || $_GET["action"] == "upgrade")
if ($choix==1) $dir = "../../mysql/migration/";
else $dir = "../../pgsql/migration/";
+ $filelist=array();
$i = 0;
$ok = 0;
+ $from='^'.$versionfrom;
+ $to=$versionto.'\.sql$';
+
+ # Recupere list fichier
+ $filesindir=array();
$handle=opendir($dir);
while (($file = readdir($handle))!==false)
{
- if (eregi($migfile,$file))
+ if (eregi('\.sql$',$file)) $filesindir[]=$file;
+ }
+ sort($filesindir);
+
+ # Determine les fichiers sql a passer
+ foreach($filesindir as $file)
+ {
+ if (eregi($from,$file))
{
+ $filelist[]=$file;
+
+ // Mettre from avec valeur fin de $file
+ }
+ else if (eregi($to,$file))
+ {
+ $filelist[]=$file;
+ }
+ }
+
+ # Boucle sur chaque fichier
+ foreach($filelist as $file)
+ {
print '| ';
print $langs->trans("ChoosedMigrateScript").' | '.$file.' |
';
@@ -228,23 +261,19 @@ if (! isset($_GET["action"]) || $_GET["action"] == "upgrade")
}
}
- }
-
- }
- closedir($handle);
-
- if ($error == 0)
- {
- print '| '.$langs->trans("ProcessMigrateScript").' | ';
- print ''.$langs->trans("OK").' |
';
- $ok = 1;
- }
- else
- {
- print '| '.$langs->trans("ProcessMigrateScript").' | ';
- print ''.$langs->trans("KO").' |
';
- $ok = 0;
- }
+ if ($error == 0)
+ {
+ print '| '.$langs->trans("ProcessMigrateScript").' | ';
+ print ''.$langs->trans("OK").' |
';
+ $ok = 1;
+ }
+ else
+ {
+ print '| '.$langs->trans("ProcessMigrateScript").' | ';
+ print ''.$langs->trans("KO").' |
';
+ $ok = 0;
+ }
+ }
}
print '
';