[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / ecrire / base / create.php
index 02450d5..1740bb6 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2014                                                *
+ *  Copyright (c) 2001-2016                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -55,13 +55,33 @@ function base_determine_autoinc($table,$desc=array()){
  * @return void
  */
 function creer_ou_upgrader_table($table,$desc,$autoinc,$upgrade=false,$serveur='') {
+       #spip_log("creer_ou_upgrader_table table=$table autoinc=$autoinc upgrade=$upgrade","dbinstall"._LOG_INFO_IMPORTANTE);
        $sql_desc = $upgrade ? sql_showtable($table,true,$serveur) : false;
+       #if (!$sql_desc) $sql_desc = false;
+       #spip_log("table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE);
        if (!$sql_desc) {
                if ($autoinc==='auto')
                        $autoinc = base_determine_autoinc($table,$desc);
+               #spip_log("sql_create $table autoinc=$autoinc","dbinstall"._LOG_INFO_IMPORTANTE);
                sql_create($table, $desc['field'], $desc['key'], $autoinc, false, $serveur);
+               // verifier la bonne installation de la table (php-fpm es-tu la ?)
+               $sql_desc = sql_showtable($table,true,$serveur);
+               #if (!$sql_desc) $sql_desc = false;
+               #spip_log("Resultat table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE);
+               if (!$sql_desc){
+                       // on retente avec un sleep ?
+                       sleep(1);
+                       sql_create($table, $desc['field'], $desc['key'], $autoinc, false, $serveur);
+                       $sql_desc = sql_showtable($table,true,$serveur);
+                       #if (!$sql_desc) $sql_desc = false;
+                       #spip_log("Resultat table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE);
+                       if (!$sql_desc){
+                               spip_log("Echec creation table $table","maj"._LOG_CRITIQUE);
+                       }
+               }
        }
        else {
+               #spip_log("sql_alter $table ... (on s'en fiche)","dbinstall"._LOG_INFO_IMPORTANTE);
                // ajouter les champs manquants
                // on ne supprime jamais les champs, car c'est dangereux
                // c'est toujours a faire manuellement