Optimisation performances migration

This commit is contained in:
Laurent Destailleur
2007-06-14 22:28:53 +00:00
parent 6745bc8950
commit 8982905224
3 changed files with 51 additions and 40 deletions

View File

@@ -138,6 +138,7 @@ if (! isset($_GET["action"]) || $_GET["action"] == "upgrade")
{
// Suppression vieilles contraintes sans noms et en doubles
// Les contraintes indesirables ont un nom qui commence par 0_ ou se termine par ibfk_999
/*
$listtables=array( 'llx_product_fournisseur_price',
'llx_fichinter',
'llx_facture_fourn',
@@ -148,15 +149,14 @@ if (! isset($_GET["action"]) || $_GET["action"] == "upgrade")
'llx_telephonie_contact_facture',
'llx_telephonie_societe_ligne',
'llx_telephonie_tarif_client');
*/
$listtables = $db->DDLListTables($conf->db->name,'');
foreach ($listtables as $val)
{
$searchTable = '';
$searchTable = $db->DDLListTables($conf->db->name,$val);
if ($searchTable == $val)
{
//print "x".$val."<br>";
$sql = "SHOW CREATE TABLE ".$val;
$resql = $db->query($sql);
if (! $resql) dolibarr_print_error($db);
if ($resql)
{
$values=$db->fetch_array($resql);
$i=0;
@@ -174,6 +174,9 @@ if (! isset($_GET["action"]) || $_GET["action"] == "upgrade")
}
$db->free($resql);
}
else
{
// \TODO Ignore only error DB_ERROR_NOSUCHTABLE
}
}
}

View File

@@ -674,19 +674,23 @@ class DoliDb
/**
\brief Liste des tables dans une database.
\param database Nom de la database
\param table Nom de la table <20> rechercher
\return array Tableau des
\param table Filtre sur tables <20> rechercher
\return array Tableau des tables de la base
*/
function DDLListTables($database, $table='')
{
$listtables=array();
$like = '';
if ($table) $like = "LIKE '".$table."'"
$result = mysql_query($this->db, "SHOW TABLES FROM ".$database." ".$like." ");
if ($table) $like = "LIKE '".$table."'";
$sql="SHOW TABLES FROM ".$database." ".$like.";";
//print $sql;
$result = mysql_query($this->db, $sql);
while($row = mysql_fetch_array($result))
{
$this->results = $row[0];
$listtables[] = $row[0];
}
return $this->results;
return $listtables;
}
/**

View File

@@ -678,19 +678,23 @@ class DoliDb
/**
\brief Liste des tables dans une database.
\param database Nom de la database
\param table Nom de la table <20> rechercher
\return array Tableau des
\param table Filtre sur tables <20> rechercher
\return array Tableau des tables de la base
*/
function DDLListTables($database, $table='')
{
$listtables=array();
$like = '';
if ($table) $like = "LIKE '".$table."'"
$result = mysqli_query($this->db, "SHOW TABLES FROM ".$database." ".$like." ");
if ($table) $like = "LIKE '".$table."'";
$sql="SHOW TABLES FROM ".$database." ".$like.";";
//print $sql;
$result = mysqli_query($this->db, $sql);
while($row = mysqli_fetch_array($result))
{
$this->results = $row[0];
$listtables[] = $row[0];
}
return $this->results;
return $listtables;
}
/**