Overview
Comment: | Correction procédure mise à jour pour tenir compte des versions récentes de SQLite qui changent le comportement lors de la mise à jour d'une table liée à des clés étrangères |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | stable | 0.9.4 |
Files: | files | file ages | folders |
SHA1: |
23a0bc46023018fb9e1c7e117cbb66bc |
User & Date: | bohwaz on 2019-10-10 17:33:41 |
Other Links: | manifest | tags |
References
2020-12-08
| ||
23:25 | • Wiki page "Changelog/0.9" artifact: b9c916b4d1 user: bohwaz | |
Context
2019-10-30
| ||
13:46 | Ne pas supprimer les anciens fichiers check-in: 13877ca03e user: bohwaz tags: trunk | |
2019-10-10
| ||
17:33 | Correction procédure mise à jour pour tenir compte des versions récentes de SQLite qui changent le comportement lors de la mise à jour d'une table liée à des clés étrangères check-in: 23a0bc4602 user: bohwaz tags: trunk, stable, 0.9.4 | |
2019-10-09
| ||
11:30 | Cohérence du retour des fonctions des filtres de squelettes check-in: 302a336a7c user: bohwaz tags: trunk | |
Changes
Modified src/VERSION from [a416ca4e18] to [19e7436639].
|
| | | 1 | 0.9.4 |
Modified src/include/lib/Garradin/DB.php from [5b61f7e017] to [b5f765f6ec].
︙ | ︙ | |||
78 79 80 81 82 83 84 | $sql = preg_replace_callback('/^\.read (.+\.sql)$/m', function ($match) use ($dir) { return file_get_contents($dir . DIRECTORY_SEPARATOR . $match[1]) . "\n"; }, $sql); return $this->exec($sql); } | | > > > > > > > > > > > > > > > > > | 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | $sql = preg_replace_callback('/^\.read (.+\.sql)$/m', function ($match) use ($dir) { return file_get_contents($dir . DIRECTORY_SEPARATOR . $match[1]) . "\n"; }, $sql); return $this->exec($sql); } /** * @see https://www.sqlite.org/lang_altertable.html */ public function toggleForeignKeys($enable) { assert(is_bool($enable)); if (!$enable) { $this->db->exec('PRAGMA legacy_alter_table = ON;'); $this->db->exec('PRAGMA foreign_keys = OFF;'); } else { $this->db->exec('PRAGMA legacy_alter_table = OFF;'); $this->db->exec('PRAGMA foreign_keys = ON;'); } } } |
Modified src/www/admin/upgrade.php from [0233e009d2] to [9e3246c1b7].
︙ | ︙ | |||
68 69 70 71 72 73 74 | </script>'; flush(); try { if (version_compare($v, '0.7.0', '<')) { | > | | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | </script>'; flush(); try { if (version_compare($v, '0.7.0', '<')) { $db->toggleForeignKeys(false); $db->begin(); // Mise à jour base de données $db->exec(file_get_contents(ROOT . '/include/data/0.7.0.sql')); // Changement de syntaxe du Wiki vers SkrivML $wiki = new Wiki; $res = $db->get('SELECT id_page, contenu, revision, chiffrement FROM wiki_revisions GROUP BY id_page ORDER BY revision DESC;'); |
︙ | ︙ | |||
97 98 99 100 101 102 103 | 'id_auteur' => null, 'contenu' => $content, 'modification' => 'Mise à jour 0.7.0 (transformation SPIP vers SkrivML)', ]); } } | | > | | | | 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | 'id_auteur' => null, 'contenu' => $content, 'modification' => 'Mise à jour 0.7.0 (transformation SPIP vers SkrivML)', ]); } } $db->commit(); } if (version_compare($v, '0.7.2', '<')) { $db->toggleForeignKeys(false); $db->begin(); // Mise à jour base de données $db->exec(file_get_contents(ROOT . '/include/data/0.7.2.sql')); $db->commit(); } if (version_compare($v, '0.8.0-beta4', '<')) { // Inscription de l'appid $db->exec('PRAGMA application_id = ' . DB::APPID . ';'); // Changement de la taille de pagesize // Cecit devrait améliorer les performances de la DB $db->exec('PRAGMA page_size = 4096;'); // Application du changement de taille de page $db->exec('VACUUM;'); // Désactivation des foreign keys AVANT le début de la transaction $db->toggleForeignKeys(false); $db->begin(); $db->import(ROOT . '/include/data/0.8.0.sql'); $db->commit(); |
︙ | ︙ | |||
159 160 161 162 163 164 165 | $comptes = new Compta\Comptes; $comptes->importPlan(); } if (version_compare($v, '0.8.3', '<')) { // Désactivation des foreign keys AVANT le début de la transaction | | | | 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | $comptes = new Compta\Comptes; $comptes->importPlan(); } if (version_compare($v, '0.8.3', '<')) { // Désactivation des foreign keys AVANT le début de la transaction $db->toggleForeignKeys(false); $db->begin(); $db->import(ROOT . '/include/data/0.8.3.sql'); $db->commit(); } if (version_compare($v, '0.8.4', '<')) { $db->begin(); $db->import(ROOT . '/include/data/0.8.4.sql'); $db->commit(); } if (version_compare($v, '0.9.0-rc1', '<')) { $db->toggleForeignKeys(false); $db->begin(); $db->import(ROOT . '/include/data/0.9.0.sql'); // Correction des ID parents des comptes qui ont été mal renseignés // exemple : compte 512A avec "5" comme parent (c'était permis, // par erreur, par le formulaire d'ajout de compte dans le plan) |
︙ | ︙ | |||
249 250 251 252 253 254 255 | if (version_compare($v, '0.9.1', '<')) { // Mise à jour plan comptable: ajout compte licences fédérales $comptes = new Compta\Comptes; $comptes->importPlan(); | | | 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 | if (version_compare($v, '0.9.1', '<')) { // Mise à jour plan comptable: ajout compte licences fédérales $comptes = new Compta\Comptes; $comptes->importPlan(); $db->toggleForeignKeys(false); $db->begin(); $db->exec('INSERT INTO "compta_categories" VALUES(NULL,-1,\'Licences fédérales\',\'Licences payées pour les adhérents (par exemple fédération sportive etc.)\',\'652\');'); $db->import(ROOT . '/include/data/0.9.1.sql'); $db->commit(); |
︙ | ︙ |