Changeset 54080 in spip-zone


Ignore:
Timestamp:
Nov 6, 2011, 1:40:17 PM (8 years ago)
Author:
cedric@…
Message:

procedure d'upgrade
indiquer qu'on est en dev sur cette version

Location:
_plugins_/notation/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/notation/trunk/notation_administrations.php

    r54022 r54080  
    1414
    1515function notation_upgrade($nom_meta_base_version,$version_cible){
    16         $current_version = 0.0;
    17         if (   (!isset($GLOBALS['meta'][$nom_meta_base_version]) )
    18                         || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
    19                
    20                 if ($current_version==0.0){
    21                         include_spip('base/notation');
    22                         creer_base();
    23                         maj_tables(array('spip_articles'));
    24                         // mettre les metas par defaut
    25                         $config = charger_fonction('config','inc');
    26                         $config();
    27                         // Ruse : sur une NOUVELLE installation, on a d�j� tout fait, donc $version_cible directement !!!!
    28                         ecrire_meta($nom_meta_base_version,$current_version=$version_cible);
    29                 }
    30                 if (version_compare($current_version,"0.5.0","<")){
    31                         //modifications de la table notations_articles en notations_objets
    32                         sql_alter("TABLE spip_notations_articles RENAME TO spip_notations_objets");
    33                         sql_alter("TABLE spip_notations_objets CHANGE nb nombre_votes BIGINT(21) NOT NULL");
    34                         sql_alter("TABLE spip_notations_objets MODIFY id_article BIGINT(21) NOT NULL DEFAULT '0'");
    35                         sql_alter("TABLE spip_notations_objets ADD COLUMN id_forum BIGINT(21) NOT NULL DEFAULT '0' AFTER id_article");
    36                         sql_alter("TABLE spip_notations_objets DROP PRIMARY KEY");
    37                         sql_alter("TABLE spip_notations_objets ADD COLUMN objet varchar(21) DEFAULT '' NOT NULL FIRST");
    38                         sql_alter("TABLE spip_notations_objets ADD INDEX (objet)");
    39                         sql_alter("TABLE spip_notations_objets ADD INDEX (id_article)");
    40                         sql_alter("TABLE spip_notations_objets ADD INDEX (id_forum)");
    41                         sql_alter("TABLE spip_notations_objets ADD INDEX (nombre_votes)");
    42                         //modifications de la table notations
    43                         sql_alter("TABLE spip_notations ADD COLUMN id_forum BIGINT(21) NOT NULL DEFAULT '0' AFTER id_article");
    44                         sql_alter("TABLE spip_notations ADD COLUMN objet varchar(21) DEFAULT '' NOT NULL AFTER id_notation");
    45                         sql_alter("TABLE spip_notations ADD INDEX (id_forum)");
    46                         sql_alter("TABLE spip_notations ADD INDEX (objet)");
    47                         // insertion de "articles" dans les champs "objet" des deux tables
    48                         // (les donnees presentes avant la maj ne concernent que des articles)
    49                         // change ensuite (0.6) en 'article' (comme le core - cf spip_documents_liens)
    50                         sql_updateq("spip_notations", array("objet" => "articles"));
    51                         sql_updateq("spip_notations_objets", array("objet" => "articles"));
    5216
    53                         //on vire les metas dans la verison precedente (maintenant on se sert de CFG)
    54                         sql_delete("spip_meta","nom =" .sql_quote("notation_acces"));
    55                         sql_delete("spip_meta","nom =" .sql_quote("notation_ip"));
    56                         sql_delete("spip_meta","nom =" .sql_quote("notation_nb"));
    57                         sql_delete("spip_meta","nom =" .sql_quote("notation_ponderation"));             
    58                        
    59                         ecrire_meta($nom_meta_base_version,$current_version="0.5.0");
    60                 }
    61                
    62                 // mise a jour pour transformer les id_article et id_forum en id_objet
    63                 if (version_compare($current_version,"0.6.1","<")){
    64                         // ajout des champ id_objet
    65                         sql_alter("TABLE spip_notations ADD COLUMN id_objet BIGINT(21) NOT NULL DEFAULT '0' AFTER objet");
    66                         sql_alter("TABLE spip_notations_objets ADD COLUMN id_objet BIGINT(21) NOT NULL DEFAULT '0' AFTER objet");
    67                         // remplissage des valeurs deja existantes
    68                         sql_update("spip_notations", array("id_objet" => "id_article", "objet" => sql_quote("article")), "id_article>".sql_quote(0));
    69                         sql_update("spip_notations", array("id_objet" => "id_forum", "objet" => sql_quote("forum")), "id_forum>".sql_quote(0));
    70                         sql_update("spip_notations_objets", array("id_objet" => "id_article", "objet" => sql_quote("article")), "id_article>".sql_quote(0));
    71                         sql_update("spip_notations_objets", array("id_objet" => "id_forum", "objet" => sql_quote("forum")), "id_forum>".sql_quote(0));
    72                         // suppression des index
    73                         sql_alter("TABLE spip_notations DROP INDEX id_article");
    74                         sql_alter("TABLE spip_notations DROP INDEX id_forum");
    75                         sql_alter("TABLE spip_notations_objets DROP INDEX id_article");
    76                         sql_alter("TABLE spip_notations_objets DROP INDEX id_forum");
    77                         // suppression des vieux champs id_article et id_forum
    78                         sql_alter("TABLE spip_notations DROP COLUMN id_article");
    79                         sql_alter("TABLE spip_notations DROP COLUMN id_forum");
    80                         sql_alter("TABLE spip_notations_objets DROP COLUMN id_article");
    81                         sql_alter("TABLE spip_notations_objets DROP COLUMN id_forum");
    82                         // recreation d'index sur id_objet
    83                         sql_alter("TABLE spip_notations ADD INDEX (id_objet)");
    84                         // creation d'une cle primaire multiple sur la table notations_objets
    85                         sql_alter("TABLE spip_notations_objets DROP INDEX objet");
    86                         sql_alter("TABLE spip_notations_objets ADD PRIMARY KEY (objet, id_objet)");
    87                         // corriger le 'articles' en 'article' ocazou il en resterait
    88                         sql_updateq("spip_notations", array("objet" => "article"), "objet=".sql_quote($a="articles"));
    89                         sql_updateq("spip_notations_objets", array("objet" => "article"), "objet=".sql_quote($a="articles"));
    90                
    91                         ecrire_meta($nom_meta_base_version,$current_version="0.6.1");
    92                 }
    93                 if (version_compare($current_version,"0.6.2","<")){
    94                         maj_tables(array('spip_articles'));
    95                         // mettre les metas par defaut
    96                         $config = charger_fonction('config','inc');
    97                         $config();
    98                         ecrire_meta($nom_meta_base_version,$current_version="0.6.2");
    99                 }
    100                 if (version_compare($current_version,"0.6.3","<")){
    101                         // Pour ceux qui ont install� une 0.6.2 directement avant la correction creant 'accepter_note'
    102                         maj_tables(array('spip_articles'));
    103                         ecrire_meta($nom_meta_base_version,$current_version="0.6.3");
    104                 }
    105         }
     17        // mettre les metas par defaut
     18        $config = charger_fonction('config','inc');
     19
     20        $maj = array();
     21        $maj['create'] = array(
     22                array('maj_tables',array('spip_notations','spip_notations_objets','spip_articles')),
     23                array($config),
     24        );
     25
     26        $maj['0.5.0'] = array(
     27                array('sql_alter',"TABLE spip_notations_articles RENAME TO spip_notations_objets"),
     28                array('sql_alter',"TABLE spip_notations_objets CHANGE nb nombre_votes BIGINT(21) NOT NULL"),
     29                array('sql_alter',"TABLE spip_notations_objets MODIFY id_article BIGINT(21) NOT NULL DEFAULT '0'"),
     30                array('sql_alter',"TABLE spip_notations_objets ADD COLUMN id_forum BIGINT(21) NOT NULL DEFAULT '0' AFTER id_article"),
     31                array('sql_alter',"TABLE spip_notations_objets DROP PRIMARY KEY"),
     32                array('sql_alter',"TABLE spip_notations_objets ADD COLUMN objet varchar(21) DEFAULT '' NOT NULL FIRST"),
     33                array('sql_alter',"TABLE spip_notations_objets ADD INDEX (objet)"),
     34                array('sql_alter',"TABLE spip_notations_objets ADD INDEX (id_article)"),
     35                array('sql_alter',"TABLE spip_notations_objets ADD INDEX (id_forum)"),
     36                array('sql_alter',"TABLE spip_notations_objets ADD INDEX (nombre_votes)"),
     37                //modifications de la table notations
     38                array('sql_alter',"TABLE spip_notations ADD COLUMN id_forum BIGINT(21) NOT NULL DEFAULT '0' AFTER id_article"),
     39                array('sql_alter',"TABLE spip_notations ADD COLUMN objet varchar(21) DEFAULT '' NOT NULL AFTER id_notation"),
     40                array('sql_alter',"TABLE spip_notations ADD INDEX (id_forum)"),
     41                array('sql_alter',"TABLE spip_notations ADD INDEX (objet)"),
     42                // insertion de "articles" dans les champs "objet" des deux tables
     43                // (les donnees presentes avant la maj ne concernent que des articles)
     44                // change ensuite (0.6) en 'article' (comme le core - cf spip_documents_liens)
     45                array('sql_updateq',"spip_notations", array("objet" => "articles")),
     46                array('sql_updateq',"spip_notations_objets", array("objet" => "articles")),
     47
     48                //on vire les metas dans la verison precedente (maintenant on se sert de CFG)
     49                array('sql_delete',"spip_meta","nom =" .sql_quote("notation_acces")),
     50                array('sql_delete',"spip_meta","nom =" .sql_quote("notation_ip")),
     51                array('sql_delete',"spip_meta","nom =" .sql_quote("notation_nb")),
     52                array('sql_delete',"spip_meta","nom =" .sql_quote("notation_ponderation")),
     53        );
     54
     55        $maj['0.6.1'] = array(
     56                // ajout des champ id_objet
     57                array('sql_alter',"TABLE spip_notations ADD COLUMN id_objet BIGINT(21) NOT NULL DEFAULT '0' AFTER objet"),
     58                array('sql_alter',"TABLE spip_notations_objets ADD COLUMN id_objet BIGINT(21) NOT NULL DEFAULT '0' AFTER objet"),
     59                // remplissage des valeurs deja existantes
     60                array('sql_updateq',"spip_notations", array("id_objet" => "id_article", "objet" => sql_quote("article")), "id_article>".sql_quote(0)),
     61                array('sql_updateq',"spip_notations", array("id_objet" => "id_forum", "objet" => sql_quote("forum")), "id_forum>".sql_quote(0)),
     62                array('sql_updateq',"spip_notations_objets", array("id_objet" => "id_article", "objet" => sql_quote("article")), "id_article>".sql_quote(0)),
     63                array('sql_updateq',"spip_notations_objets", array("id_objet" => "id_forum", "objet" => sql_quote("forum")), "id_forum>".sql_quote(0)),
     64                // suppression des index
     65                array('sql_alter',"TABLE spip_notations DROP INDEX id_article"),
     66                array('sql_alter',"TABLE spip_notations DROP INDEX id_forum"),
     67                array('sql_alter',"TABLE spip_notations_objets DROP INDEX id_article"),
     68                array('sql_alter',"TABLE spip_notations_objets DROP INDEX id_forum"),
     69                // suppression des vieux champs id_article et id_forum
     70                array('sql_alter',"TABLE spip_notations DROP COLUMN id_article"),
     71                array('sql_alter',"TABLE spip_notations DROP COLUMN id_forum"),
     72                array('sql_alter',"TABLE spip_notations_objets DROP COLUMN id_article"),
     73                array('sql_alter',"TABLE spip_notations_objets DROP COLUMN id_forum"),
     74                // recreation d'index sur id_objet
     75                array('sql_alter',"TABLE spip_notations ADD INDEX (id_objet)"),
     76                // creation d'une cle primaire multiple sur la table notations_objets
     77                array('sql_alter',"TABLE spip_notations_objets DROP INDEX objet"),
     78                array('sql_alter',"TABLE spip_notations_objets ADD PRIMARY KEY (objet, id_objet)"),
     79                // corriger le 'articles' en 'article' ocazou il en resterait
     80                array('sql_updateq',"spip_notations", array("objet" => "article"), "objet=".sql_quote("articles")),
     81                array('sql_updateq',"spip_notations_objets", array("objet" => "article"), "objet=".sql_quote("articles")),
     82        );
     83
     84        $maj['0.6.2'] = array(
     85                array('maj_tables',array('spip_articles')),
     86                array($config),
     87        );
     88
     89        $maj['0.6.3'] = array(
     90                // Pour ceux qui ont installe une 0.6.2 directement avant la correction creant 'accepter_note'
     91                array('maj_tables',array('spip_articles')),
     92        );
     93
     94        include_spip('base/upgrade');
     95        maj_plugin($nom_meta_base_version, $version_cible, $maj);
     96
    10697}
    10798
  • _plugins_/notation/trunk/paquet.xml

    r54079 r54080  
    33        categorie="communication"
    44        version="2.0.0"
    5         etat="stable"
     5        etat="dev"
    66        compatibilite="[3.0.0-beta;3.0.*]"
    77        logo="prive/themes/spip/images/notation-32.png"
Note: See TracChangeset for help on using the changeset viewer.