forked from Wavyzz/dolibarr
New: Possibilit d'imposer la version minimale de la base dans les scripts de migration ou .sql.
Pour cela il faut mettre devant l'ordre sql, la sequence --Vx.x pour executer l'ordre SQL uniquement si base en version x.x ou superieur.
This commit is contained in:
@@ -112,8 +112,10 @@ if ($_POST["action"] == "set")
|
||||
if ($ok)
|
||||
{
|
||||
$version=$db->getVersion();
|
||||
print '<tr><td>';
|
||||
print $langs->trans("DatabaseVersion").'</td><td>'.$version.'</td></tr>';
|
||||
$versionarray=$db->getVersionArray();
|
||||
print '<tr><td>'.$langs->trans("DatabaseVersion").'</td>';
|
||||
print '<td align="right">'.$version.'</td></tr>';
|
||||
//print '<td align="right">'.join('.',$versionarray).'</td></tr>';
|
||||
}
|
||||
|
||||
/**************************************************************************************
|
||||
@@ -213,12 +215,17 @@ if ($_POST["action"] == "set")
|
||||
$buf = fgets($fp, 4096);
|
||||
|
||||
// Cas special de lignes autorisees pour certaines versions uniquement
|
||||
if (eregi('^-- V([0-9]+)',$buf,$reg))
|
||||
if (eregi('^-- V([0-9\.]+)',$buf,$reg))
|
||||
{
|
||||
if ($reg[1] && $reg[1] <= $version)
|
||||
$versioncommande=split('\.',$reg[1]);
|
||||
//print var_dump($versioncommande);
|
||||
//print var_dump($versionarray);
|
||||
if (sizeof($versioncommande) && sizeof($versionarray)
|
||||
&& versioncompare($versioncommande,$versionarray) <= 0)
|
||||
{
|
||||
$buf=eregi_replace('^-- V([0-9]+)','',$buf);
|
||||
//print $buf.'<br>';
|
||||
// Version qualified, delete SQL comments
|
||||
$buf=eregi_replace('^-- V([0-9\.]+)','',$buf);
|
||||
//print "Ligne $i qualifi<66>e par version: ".$buf.'<br>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
\version $Revision$
|
||||
*/
|
||||
|
||||
require_once('../translate.class.php');
|
||||
|
||||
|
||||
// Forcage du parametrage PHP magic_quots_gpc (Sinon il faudrait a chaque POST, conditionner
|
||||
// la lecture de variable par stripslashes selon etat de get_magic_quotes).
|
||||
// En mode off (recommande il faut juste faire addslashes au moment d'un insert/update.
|
||||
@@ -45,9 +48,8 @@ if (get_magic_quotes_gpc())
|
||||
|
||||
$docurl = '<a href="doc/dolibarr-install.html">documentation</a>';
|
||||
$conffile = "../conf/conf.php";
|
||||
// Defini objet langs
|
||||
require_once('../translate.class.php');
|
||||
|
||||
// Defini objet langs
|
||||
$langs = new Translate('../langs');
|
||||
$langs->setDefaultLang('auto');
|
||||
$langs->setPhpLang();
|
||||
@@ -103,6 +105,7 @@ function pFooter($nonext=0,$setuplang='')
|
||||
print '</html>';
|
||||
}
|
||||
|
||||
|
||||
function dolibarr_syslog($message)
|
||||
{
|
||||
// Les fonctions syslog ne sont pas toujours install豠ou autoris褳 chez les h补rgeurs
|
||||
@@ -117,4 +120,27 @@ function dolibarr_syslog($message)
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
\brief Compare 2 versions
|
||||
\param versionarray1 Tableau de version (vermajeur,vermineur,autre)
|
||||
\param versionarray2 Tableau de version (vermajeur,vermineur,autre)
|
||||
\return int <0 si versionarray1<versionarray2, 0 si =, >0 si versionarray1>versionarray2
|
||||
*/
|
||||
function versioncompare($versionarray1,$versionarray2)
|
||||
{
|
||||
$ret=0;
|
||||
$i=0;
|
||||
while ($i < max(sizeof($versionarray1),sizeof($versionarray1)))
|
||||
{
|
||||
$operande1=isset($versionarray1[$i])?$versionarray1[$i]:0;
|
||||
$operande2=isset($versionarray2[$i])?$versionarray2[$i]:0;
|
||||
if ($operande1 < $operande2) { $ret = -1; break; }
|
||||
if ($operande1 > $operande2) { $ret = 1; break; }
|
||||
$i++;
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -103,7 +103,6 @@ if (! isset($_GET["action"]) || $_GET["action"] == "upgrade")
|
||||
{
|
||||
if($db->database_selected == 1)
|
||||
{
|
||||
|
||||
dolibarr_syslog("Connexion r<>ussie <20> la base : $dolibarr_main_db_name");
|
||||
}
|
||||
else
|
||||
@@ -112,6 +111,17 @@ if (! isset($_GET["action"]) || $_GET["action"] == "upgrade")
|
||||
}
|
||||
}
|
||||
|
||||
// Affiche version
|
||||
if ($ok)
|
||||
{
|
||||
$version=$db->getVersion();
|
||||
$versionarray=$db->getVersionArray();
|
||||
print '<tr><td>'.$langs->trans("DatabaseVersion").'</td>';
|
||||
print '<td align="right">'.$version.'</td></tr>';
|
||||
//print '<td align="right">'.join('.',$versionarray).'</td></tr>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************************
|
||||
*
|
||||
@@ -141,9 +151,27 @@ if (! isset($_GET["action"]) || $_GET["action"] == "upgrade")
|
||||
while (!feof ($fp))
|
||||
{
|
||||
$buf = fgets($fp, 4096);
|
||||
$buf = ereg_replace('--(.*)','',$buf); // Delete SQL comments
|
||||
|
||||
// Cas special de lignes autorisees pour certaines versions uniquement
|
||||
if (eregi('^-- V([0-9\.]+)',$buf,$reg))
|
||||
{
|
||||
$versioncommande=split('\.',$reg[1]);
|
||||
//print var_dump($versioncommande);
|
||||
//print var_dump($versionarray);
|
||||
if (sizeof($versioncommande) && sizeof($versionarray)
|
||||
&& versioncompare($versioncommande,$versionarray) <= 0)
|
||||
{
|
||||
// Version qualified, delete SQL comments
|
||||
$buf=eregi_replace('^-- V([0-9\.]+)','',$buf);
|
||||
//print "Ligne $i qualifi<66>e par version: ".$buf.'<br>';
|
||||
}
|
||||
}
|
||||
|
||||
// Ajout ligne si non commentaire
|
||||
if (! eregi('^--',$buf)) $buffer .= $buf;
|
||||
|
||||
// print $buf.'<br>';
|
||||
$buffer .= $buf;
|
||||
|
||||
if (eregi(';',$buffer))
|
||||
{
|
||||
// Found new request
|
||||
|
||||
@@ -57,7 +57,7 @@ function versiontostring($versionarray)
|
||||
\brief Compare 2 versions
|
||||
\param versionarray1 Tableau de version (vermajeur,vermineur,autre)
|
||||
\param versionarray2 Tableau de version (vermajeur,vermineur,autre)
|
||||
\return int <0 si versionarray1>versionarray2, 0 si =, >0 si versionarray1>versionarray2
|
||||
\return int <0 si versionarray1<versionarray2, 0 si =, >0 si versionarray1>versionarray2
|
||||
*/
|
||||
function versioncompare($versionarray1,$versionarray2)
|
||||
{
|
||||
|
||||
@@ -206,6 +206,16 @@ class DoliDb
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
\brief Renvoie la version du serveur dans un tableau
|
||||
\return array Tableau de chaque niveau de version
|
||||
*/
|
||||
function getVersionArray()
|
||||
{
|
||||
return split('\.',$this->getVersion());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
\brief Renvoie l'id de la connection
|
||||
\return string Id connection
|
||||
|
||||
@@ -179,6 +179,17 @@ class DoliDb
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
\brief Renvoie la version du serveur dans un tableau
|
||||
\return array Tableau de chaque niveau de version
|
||||
*/
|
||||
function getVersionArray()
|
||||
{
|
||||
return split('\.',$this->getVersion());
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
\brief Renvoie l'id de la connection
|
||||
\return string Id connection
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
-- $Revision$
|
||||
--
|
||||
-- Attention <20> l ordre des requetes
|
||||
-- ce fichier doit <20>tre charg<72> sur une version 2.0.0
|
||||
-- Attention <20> l ordre des requetes.
|
||||
-- Ce fichier doit <20>tre charg<72> sur une version 2.0.0
|
||||
-- sans AUCUNE erreur ni warning
|
||||
--
|
||||
|
||||
@@ -290,7 +290,7 @@ alter table llx_accountingsystem_det rename to llx_accountingaccount;
|
||||
|
||||
|
||||
insert into llx_rights_def (id, libelle, module, type, bydefault, subperms, perms) values (262,'Consulter tous les clients','commercial','r',1,'voir','client');
|
||||
insert into llx_user_rights(fk_user,fk_id) select distinct fk_user, '262' from llx_user_rights where fk_id = 261;
|
||||
-- V4.1 insert into llx_user_rights(fk_user,fk_id) select distinct fk_user, '262' from llx_user_rights where fk_id = 261;
|
||||
update llx_rights_def set subperms='creer' where subperms='supprimer' AND module='user' AND perms='self' AND id=255;
|
||||
|
||||
alter table llx_commandedet add column rang integer DEFAULT 0;
|
||||
|
||||
Reference in New Issue
Block a user