Changeset 31975 in spip-zone


Ignore:
Timestamp:
Oct 8, 2009, 3:32:31 PM (10 years ago)
Author:
kent1@…
Message:

Bon ... apparemment les problèmes d'upgrade de vieilles bases ne devraient plus poser de problèmes (au moins depuis une version 0.61 et un SPIP 1.9.2i) ...

Si vous avez des bases qui posent problèmes ... je suis preneur

Location:
_plugins_/inscription2/inscription2_2_0
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/inscription2/inscription2_2_0/base/inscription2_installer.php

    r31637 r31975  
    2323        }
    2424
    25         $version_base = $GLOBALS['inscription2_version'];
    2625        $current_version = 0.0;
     26        $version_base = $GLOBALS['meta']['inscription2_version'];
    2727
    2828        //insertion des infos par defaut
     
    3131        //Certaines montées de version ont oublié de corriger la meta de I2
    3232        //si ce n'est pas un array alors il faut reconfigurer la meta
    33         if ($inscription2_meta && !is_array(unserialize($inscription2_meta))) {
     33        if (isset($version_base) && !is_array(unserialize($inscription2_meta))) {
    3434                spip_log("INSCRIPTION 2 : effacer la meta inscription2 et relancer l'install","inscription2");
    3535                echo "La configuration du plugin Inscription 2 a &eacute;t&eacute; effac&eacute;e.<br />";
    3636                effacer_meta('inscription2');
    37                 $GLOBALS['meta']['inscription2_version']=0.0;
     37                $version_base = 0.0;
    3838        }
    3939
    4040        // Si la version installee est la derniere en date, on ne fait rien
    41         if ( (isset($GLOBALS['meta']['inscription2_version']) )
    42                 && (($current_version = $GLOBALS['meta']['inscription2_version'])==$version_base))
     41        if ( (isset($version_base) )
     42                && (($current_version = $version_base)==$GLOBALS['inscription2_version']))
    4343        return;
    4444
     
    9797                $current_version = $version_base;
    9898        }
    99 
    100         // Si la version installee est inferieur a O.6 on fait l homogeneisation avec spip_geo
    101         if ($current_version<0.6){
    102                 include_spip('base/abstract_sql');
    103                 include(_DIR_PLUGIN_INSCRIPTION2."/inc/pays.php");
    104                 $table_pays = "spip_geo_pays";
    105                 $descpays = sql_showtable($table_pays, '', false);
    106 
    107                 $descpays_old = sql_showtable('spip_pays', '', false);
    108                 if(isset($descpays_old['field'])){
    109                         sql_drop_table("spip_pays");
    110                 }
    111 
    112                 if(!isset($descpays['field']['pays'])){
    113                         sql_create("spip_geo_pays",
    114                                 array("id_pays"=> "SMALLINT NOT NULL AUTO_INCREMENT","nom" => "varchar(255) NOT NULL"),
    115                                 array('PRIMARY KEY' => "id_pays")
    116                         );
    117                         spip_query("INSERT INTO spip_geo_pays (nom) VALUES (\"".join('"), ("',$liste_pays)."\")");
    118                 }
    119 
    120                 echo "Inscription2 update @ 0.6<br/>Spip_pays devient spip_geo_pays homogeneite avec spip_geo";
    121                 ecrire_meta('inscription2_version',$current_version=0.6);
    122         }
    123                 // Si la version installee est inferieur a 0.6 on fait l homogeneisation avec spip_geo
    124         if ($current_version<0.61){
    125                 include_spip('base/abstract_sql');
    126                 $table_pays = "spip_geo_pays";
    127                 $descpays = sql_showtable($table_pays, '', false);
    128 
    129                 if((isset($descpays['field']['nom'])) && (!isset($descpays['field']['pays']))){
    130                         sql_alter("TABLE spip_geo_pays CHANGE nom pays varchar(255) NOT NULL");
    131                 }
    132 
    133                 echo "Inscription2 update @ 0.61<br/>On retablit le champs pays sur la table pays et pas nom";
    134                 ecrire_meta('inscription2_version',$current_version=0.61);
    135         }
    13699        if ($current_version<0.63){
    137100                include_spip('base/abstract_sql');
    138101                // Suppression du champs id et on remet la primary key sur id_auteur...
    139                 sql_alter("TABLE spip_auteurs_elargis DROP id, DROP INDEX id_auteur, ADD PRIMARY KEY (id_auteur)");
    140                 echo "Inscription2 update @ 0.63<br />On supprime le champs id pour privilegier id_auteur";
     102                sql_alter("TABLE spip_auteurs_elargis DROP id");
     103                sql_alter("TABLE spip_auteurs_elargis DROP INDEX id_auteur");
     104                sql_alter("TABLE spip_auteurs_elargis ADD PRIMARY KEY (id_auteur)");
     105                echo "Inscription2 update @ 0.63 : On supprime le champs id pour privilegier id_auteur<br />";
    141106                ecrire_meta('inscription2_version',$current_version=0.63);
    142107        }
    143         if ($current_version<0.65){
    144                 ecrire_meta('inscription2_version',$current_version=0.65);
    145         }
    146108
    147109        if ($current_version<0.71){
     110                spip_log('INSCRIPTION2 : upgrade en version 0.71');     
    148111                /*
    149112                 * Reinstaller les pays de Geographie
     
    152115                i2_installer_pays();
    153116                spip_log("Inscription2 update @ 0.71 : installation de la table pays de geographie", "maj");
     117                echo "Inscription2 update @ 0.71 : installation de la table pays de geographie<br />";
    154118                ecrire_meta('inscription2_version',$current_version=0.71);
    155119        }
     
    180144                $desc = sql_showtable('spip_auteurs_elargis','', '', true);
    181145                foreach(lire_config('inscription2',array()) as $cle => $val){
    182                         $cle = ereg_replace("_(obligatoire|fiche|table).*", "", $cle);
     146                        $cle = preg_replace("_(obligatoire|fiche|table).*", "", $cle);
    183147                        if(!in_array($cle,$clef_passee)){
    184148                                if(isset($desc['field'][$cle]) and !in_array($cle,$exceptions_des_champs_auteurs_elargis)){
     
    207171// reinstaller la table de pays
    208172function i2_installer_pays() {
     173        spip_log('INSCRIPTION2 : i2_installer_pays');
    209174        if (!defined('_DIR_PLUGIN_GEOGRAPHIE')) {
    210175                // 1) suppression de la table existante
    211176                // pour redemarrer les insert a zero
    212                 sql_drop_table("spip_geo_pays");
     177                $descpays = sql_showtable('spip_geo_pays', '', false);
     178                if(isset($descpays['field'])){
     179                        sql_drop_table("spip_geo_pays");
     180                }
    213181                // 2) recreation de la table
    214182                include_spip('base/create');
  • _plugins_/inscription2/inscription2_2_0/inc/inscription2_verifier_tables.php

    r31637 r31975  
    6262
    6363        include_spip('base/create');
     64        creer_base();
    6465        maj_tables($table);
    6566        return;
Note: See TracChangeset for help on using the changeset viewer.