Skip to content
Extraits de code Groupes Projets
Valider 14607f9e rédigé par cerdic's avatar cerdic
Parcourir les fichiers

oups [9496] a emmené avec lui des debris

parent e79b5d94
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -17,7 +17,7 @@ function base_admin_repair_dist() {
$res1= spip_query("SHOW TABLES");
$res = "";
/*if ($res1) { while ($tab = spip_fetch_array($res1,SPIP_NUM)) {
if ($res1) { while ($tab = spip_fetch_array($res1,SPIP_NUM)) {
$res .= "<p><b>".$tab[0]."</b> ";
$result_repair = spip_query("REPAIR TABLE ".$tab[0]);
......@@ -42,10 +42,8 @@ function base_admin_repair_dist() {
else
$res .= " "._T('texte_table_ok')."<br />\n";
}
}*/
}
reparer_base();
if (!$res) {
$res = "<br /><br /><span style='color: red; font-weight: bold;'><tt>"._T('avis_erreur_mysql').' '.spip_sql_errno().': '.spip_sql_error() ."</tt></span><br /><br /><br />\n";
}
......@@ -53,68 +51,4 @@ function base_admin_repair_dist() {
echo minipres(_T('texte_tentative_recuperation'), $res);
exit;
}
include_spip('base/serial');
include_spip('base/auxiliaires');
function reparer_base() {
// retablir les declarations par defaut des tables
global $tables_principales, $tables_auxiliaires, $tables_images, $tables_sequences, $tables_documents, $tables_mime;
// ne pas revenir plusieurs fois (si, au contraire, il faut pouvoir
// le faire car certaines mises a jour le demandent explicitement)
# static $vu = false;
# if ($vu) return; else $vu = true;
$done = array();
if (lire_fichier(_DIR_TMP."repair.txt",$contenu))
$done = unserialize($contenu);
foreach($tables_principales as $k => $v)
if (!in_array($k,$done)){
spip_mysql_repair($k, $v['field'], $v['key'], true);
$done[] = $k;
ecrire_fichier(_DIR_TMP."repair.txt",serialize($done));
}
foreach($tables_auxiliaires as $k => $v)
if (!in_array($k,$done)){
spip_mysql_repair($k, $v['field'], $v['key'], false);
$done[] = $k;
ecrire_fichier(_DIR_TMP."repair.txt",serialize($done));
}
@unlink(_DIR_TMP."repair.txt");
}
function spip_mysql_repair($nom, $champs, $cles, $autoinc=false, $temporary=false) {
$query = ''; $keys = ''; $s = ''; $p='';
// certains plugins declarent les tables (permet leur inclusion dans le dump)
// sans les renseigner (laisse le compilo recuperer la description)
if (!is_array($champs) || !is_array($cles))
return;
foreach($cles as $k => $v) {
$keys .= "$s\n\t\t$k ($v)";
if ($k == "PRIMARY KEY")
$p = $v;
$s = ",";
}
$s = '';
$character_set = "";
if (isset($GLOBALS['meta']['charset_sql_base']))
$character_set .= " CHARACTER SET ".$GLOBALS['meta']['charset_sql_base'];
if (isset($GLOBALS['meta']['charset_collation_sql_base']))
$character_set .= " COLLATE ".$GLOBALS['meta']['charset_collation_sql_base'];
foreach($champs as $k => $v) {
if (preg_match(',(null|default),i',$v)){
if (preg_match(',([a-z]*\s*(\(\s*[0-9]*\s*\))?),i',$v,$defs)){
if (preg_match(',(char|text),i',$defs[1])){
$v = $defs[1] . $character_set . ' ' . substr($v,strlen($defs[1]));
}
}
spip_query("ALTER TABLE $nom CHANGE $k $k $v" . (($autoinc && ($p == $k)) ? " auto_increment" : ''));
}
}
}
?>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter