From d38bf1c74e55902778a16f04ca6cdefbabe03847 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Wed, 26 Sep 2007 14:18:35 +0000 Subject: [PATCH] mise a jour en plusieurs etapes pour la grosse liste de ALTER qui me plante a *chaque* fois ; la methode peut sans doute etre amelioree --- ecrire/base/upgrade.php | 17 ++++ ecrire/maj/v019.php | 186 +++++++++++++++++++--------------------- 2 files changed, 105 insertions(+), 98 deletions(-) diff --git a/ecrire/base/upgrade.php b/ecrire/base/upgrade.php index d29ab947ef..a3f3171fbf 100644 --- a/ecrire/base/upgrade.php +++ b/ecrire/base/upgrade.php @@ -66,6 +66,23 @@ function maj_base($version_cible = 0) { } } + +// Appliquer une serie de spip_query() qui risquent de partir en timeout +// cf. maj/v019.php +function serie_upgrade($serie, $q = array()) { + $etape = intval($GLOBALS['meta']['upgrade_etape_'.$serie]); + foreach ($q as $i => $req) { + if ($i <= $etape) { + spip_log("etape $i: ".$req); + spip_query($req); + ecrire_meta('upgrade_etape_'.$serie, $i+1); + ecrire_metas(); + } + } + effacer_meta('upgrade_etape_'.$serie); +} + + // A partir de la version 1.945, le while ci-dessus aboutit ici. // Se relancer soi-meme pour eviter l'interruption pendant une operation SQL // (qu'on espere pas trop longue chacune). diff --git a/ecrire/maj/v019.php b/ecrire/maj/v019.php index 3358abaa95..c5bd217bb1 100644 --- a/ecrire/maj/v019.php +++ b/ecrire/maj/v019.php @@ -463,104 +463,94 @@ function maj_v019_38() function maj_1_945() { - spip_query("ALTER TABLE spip_petitions CHANGE `email_unique` `email_unique` CHAR (3) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_petitions CHANGE `site_obli` `site_obli` CHAR (3) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_petitions CHANGE `site_unique` `site_unique` CHAR (3) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_petitions CHANGE `message` `message` CHAR (3) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_petitions CHANGE `texte` `texte` LONGTEXT DEFAULT '' NOT NULL"); - - spip_query("ALTER TABLE spip_articles CHANGE `surtitre` `surtitre` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_articles CHANGE `titre` `titre` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_articles CHANGE `soustitre` `soustitre` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_articles CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_articles CHANGE `chapo` `chapo` mediumtext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_articles CHANGE `texte` `texte` longtext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_articles CHANGE `ps` `ps` mediumtext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_articles CHANGE `accepter_forum` `accepter_forum` CHAR(3) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_articles CHANGE `nom_site` `nom_site` tinytext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_articles CHANGE `url_site` `url_site` VARCHAR(255) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_articles CHANGE `url_propre` `url_propre` VARCHAR(255) DEFAULT '' NOT NULL"); - - spip_query("ALTER TABLE spip_auteurs CHANGE `nom` `nom` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_auteurs CHANGE `bio` `bio` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_auteurs CHANGE `email` `email` tinytext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_auteurs CHANGE `nom_site` `nom_site` tinytext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_auteurs CHANGE `url_site` `url_site` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_auteurs CHANGE `pass` `pass` tinytext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_auteurs CHANGE `low_sec` `low_sec` tinytext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_auteurs CHANGE `pgp` `pgp` TEXT DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_auteurs CHANGE `htpass` `htpass` tinytext DEFAULT '' NOT NULL"); - - spip_query("ALTER TABLE spip_breves CHANGE `titre` `titre` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_breves CHANGE `texte` `texte` longtext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_breves CHANGE `lien_titre` `lien_titre` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_breves CHANGE `lien_url` `lien_url` text DEFAULT '' NOT NULL"); - - spip_query("ALTER TABLE spip_messages CHANGE `titre` `titre` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_messages CHANGE `texte` `texte` longtext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_messages CHANGE `type` `type` varchar(6) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_messages CHANGE `rv` `rv` varchar(3) DEFAULT '' NOT NULL"); - - spip_query("ALTER TABLE spip_mots CHANGE `titre` `titre` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_mots CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_mots CHANGE `texte` `texte` longtext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_mots CHANGE `type` `type` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_mots CHANGE `url_propre` `url_propre` VARCHAR(255) DEFAULT '' NOT NULL"); - - spip_query("ALTER TABLE spip_groupes_mots CHANGE `titre` `titre` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_groupes_mots CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_groupes_mots CHANGE `texte` `texte` longtext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_groupes_mots CHANGE `unseul` `unseul` varchar(3) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_groupes_mots CHANGE `obligatoire` `obligatoire` varchar(3) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_groupes_mots CHANGE `articles` `articles` varchar(3) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_groupes_mots CHANGE `breves` `breves` varchar(3) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_groupes_mots CHANGE `rubriques` `rubriques` varchar(3) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_groupes_mots CHANGE `syndic` `syndic` varchar(3) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_groupes_mots CHANGE `minirezo` `minirezo` varchar(3) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_groupes_mots CHANGE `comite` `comite` varchar(3) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_groupes_mots CHANGE `forum` `forum` varchar(3) DEFAULT '' NOT NULL"); - - spip_query("ALTER TABLE spip_rubriques CHANGE `titre` `titre` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_rubriques CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_rubriques CHANGE `texte` `texte` longtext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_rubriques CHANGE `url_propre` `url_propre` VARCHAR(255) DEFAULT '' NOT NULL"); - - spip_query("ALTER TABLE spip_documents CHANGE `extension` `extension` VARCHAR(10) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_documents CHANGE `titre` `titre` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_documents CHANGE `date` `date` datetime DEFAULT '0000-00-00 00:00:00' NOT NULL"); - spip_query("ALTER TABLE spip_documents CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_documents CHANGE `fichier` `fichier` varchar(255) DEFAULT '' NOT NULL"); - - spip_query("ALTER TABLE spip_types_documents CHANGE `extension` `extension` varchar(10) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_types_documents CHANGE `titre` `titre` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_types_documents CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_types_documents CHANGE `mime_type` `mime_type` varchar(100) DEFAULT '' NOT NULL"); - - spip_query("ALTER TABLE spip_syndic CHANGE `nom_site` `nom_site` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_syndic CHANGE `url_site` `url_site` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_syndic CHANGE `url_syndic` `url_syndic` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_syndic CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_syndic CHANGE `url_propre` `url_propre` VARCHAR(255) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_syndic CHANGE `syndication` `syndication` VARCHAR(3) DEFAULT '' NOT NULL"); - - spip_query("ALTER TABLE spip_syndic_articles CHANGE `titre` `titre` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_syndic_articles CHANGE `url` `url` VARCHAR(255) DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_syndic_articles CHANGE `lesauteurs` `lesauteurs` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_syndic_articles CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL"); - - spip_query("ALTER TABLE spip_forum CHANGE `titre` `titre` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_forum CHANGE `texte` `texte` mediumtext DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_forum CHANGE `auteur` `auteur` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_forum CHANGE `email_auteur` `email_auteur` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_forum CHANGE `nom_site` `nom_site` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_forum CHANGE `url_site` `url_site` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_forum CHANGE `ip` `ip` varchar(16) DEFAULT '' NOT NULL"); - - spip_query("ALTER TABLE spip_signatures CHANGE `nom_email` `nom_email` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_signatures CHANGE `ad_email` `ad_email` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_signatures CHANGE `nom_site` `nom_site` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_signatures CHANGE `url_site` `url_site` text DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_signatures CHANGE `message` `message` mediumtext DEFAULT '' NOT NULL"); + serie_upgrade('1945', + array( + "ALTER TABLE spip_petitions CHANGE `email_unique` `email_unique` CHAR (3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_petitions CHANGE `site_obli` `site_obli` CHAR (3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_petitions CHANGE `site_unique` `site_unique` CHAR (3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_petitions CHANGE `message` `message` CHAR (3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_petitions CHANGE `texte` `texte` LONGTEXT DEFAULT '' NOT NULL", + "ALTER TABLE spip_articles CHANGE `surtitre` `surtitre` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_articles CHANGE `titre` `titre` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_articles CHANGE `soustitre` `soustitre` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_articles CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_articles CHANGE `chapo` `chapo` mediumtext DEFAULT '' NOT NULL", + "ALTER TABLE spip_articles CHANGE `texte` `texte` longtext DEFAULT '' NOT NULL", + "ALTER TABLE spip_articles CHANGE `ps` `ps` mediumtext DEFAULT '' NOT NULL", + "ALTER TABLE spip_articles CHANGE `accepter_forum` `accepter_forum` CHAR(3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_articles CHANGE `nom_site` `nom_site` tinytext DEFAULT '' NOT NULL", + "ALTER TABLE spip_articles CHANGE `url_site` `url_site` VARCHAR(255) DEFAULT '' NOT NULL", + "ALTER TABLE spip_articles CHANGE `url_propre` `url_propre` VARCHAR(255) DEFAULT '' NOT NULL", + "ALTER TABLE spip_auteurs CHANGE `nom` `nom` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_auteurs CHANGE `bio` `bio` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_auteurs CHANGE `email` `email` tinytext DEFAULT '' NOT NULL", + "ALTER TABLE spip_auteurs CHANGE `nom_site` `nom_site` tinytext DEFAULT '' NOT NULL", + "ALTER TABLE spip_auteurs CHANGE `url_site` `url_site` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_auteurs CHANGE `pass` `pass` tinytext DEFAULT '' NOT NULL", + "ALTER TABLE spip_auteurs CHANGE `low_sec` `low_sec` tinytext DEFAULT '' NOT NULL", + "ALTER TABLE spip_auteurs CHANGE `pgp` `pgp` TEXT DEFAULT '' NOT NULL", + "ALTER TABLE spip_auteurs CHANGE `htpass` `htpass` tinytext DEFAULT '' NOT NULL", + "ALTER TABLE spip_breves CHANGE `titre` `titre` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_breves CHANGE `texte` `texte` longtext DEFAULT '' NOT NULL", + "ALTER TABLE spip_breves CHANGE `lien_titre` `lien_titre` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_breves CHANGE `lien_url` `lien_url` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_messages CHANGE `titre` `titre` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_messages CHANGE `texte` `texte` longtext DEFAULT '' NOT NULL", + "ALTER TABLE spip_messages CHANGE `type` `type` varchar(6) DEFAULT '' NOT NULL", + "ALTER TABLE spip_messages CHANGE `rv` `rv` varchar(3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_mots CHANGE `titre` `titre` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_mots CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_mots CHANGE `texte` `texte` longtext DEFAULT '' NOT NULL", + "ALTER TABLE spip_mots CHANGE `type` `type` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_mots CHANGE `url_propre` `url_propre` VARCHAR(255) DEFAULT '' NOT NULL", + "ALTER TABLE spip_groupes_mots CHANGE `titre` `titre` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_groupes_mots CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_groupes_mots CHANGE `texte` `texte` longtext DEFAULT '' NOT NULL", + "ALTER TABLE spip_groupes_mots CHANGE `unseul` `unseul` varchar(3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_groupes_mots CHANGE `obligatoire` `obligatoire` varchar(3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_groupes_mots CHANGE `articles` `articles` varchar(3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_groupes_mots CHANGE `breves` `breves` varchar(3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_groupes_mots CHANGE `rubriques` `rubriques` varchar(3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_groupes_mots CHANGE `syndic` `syndic` varchar(3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_groupes_mots CHANGE `minirezo` `minirezo` varchar(3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_groupes_mots CHANGE `comite` `comite` varchar(3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_groupes_mots CHANGE `forum` `forum` varchar(3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_rubriques CHANGE `titre` `titre` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_rubriques CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_rubriques CHANGE `texte` `texte` longtext DEFAULT '' NOT NULL", + "ALTER TABLE spip_rubriques CHANGE `url_propre` `url_propre` VARCHAR(255) DEFAULT '' NOT NULL", + "ALTER TABLE spip_documents CHANGE `extension` `extension` VARCHAR(10) DEFAULT '' NOT NULL", + "ALTER TABLE spip_documents CHANGE `titre` `titre` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_documents CHANGE `date` `date` datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", + "ALTER TABLE spip_documents CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_documents CHANGE `fichier` `fichier` varchar(255) DEFAULT '' NOT NULL", + "ALTER TABLE spip_types_documents CHANGE `extension` `extension` varchar(10) DEFAULT '' NOT NULL", + "ALTER TABLE spip_types_documents CHANGE `titre` `titre` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_types_documents CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_types_documents CHANGE `mime_type` `mime_type` varchar(100) DEFAULT '' NOT NULL", + "ALTER TABLE spip_syndic CHANGE `nom_site` `nom_site` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_syndic CHANGE `url_site` `url_site` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_syndic CHANGE `url_syndic` `url_syndic` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_syndic CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_syndic CHANGE `url_propre` `url_propre` VARCHAR(255) DEFAULT '' NOT NULL", + "ALTER TABLE spip_syndic CHANGE `syndication` `syndication` VARCHAR(3) DEFAULT '' NOT NULL", + "ALTER TABLE spip_syndic_articles CHANGE `titre` `titre` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_syndic_articles CHANGE `url` `url` VARCHAR(255) DEFAULT '' NOT NULL", + "ALTER TABLE spip_syndic_articles CHANGE `lesauteurs` `lesauteurs` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_syndic_articles CHANGE `descriptif` `descriptif` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_forum CHANGE `titre` `titre` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_forum CHANGE `texte` `texte` mediumtext DEFAULT '' NOT NULL", + "ALTER TABLE spip_forum CHANGE `auteur` `auteur` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_forum CHANGE `email_auteur` `email_auteur` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_forum CHANGE `nom_site` `nom_site` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_forum CHANGE `url_site` `url_site` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_forum CHANGE `ip` `ip` varchar(16) DEFAULT '' NOT NULL", + "ALTER TABLE spip_signatures CHANGE `nom_email` `nom_email` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_signatures CHANGE `ad_email` `ad_email` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_signatures CHANGE `nom_site` `nom_site` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_signatures CHANGE `url_site` `url_site` text DEFAULT '' NOT NULL", + "ALTER TABLE spip_signatures CHANGE `message` `message` mediumtext DEFAULT '' NOT NULL" + )); } // http://trac.rezo.net/trac/spip/changeset/10150 -- GitLab