Overview
Comment: | Débuts de la màj 0.10.0 |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
636b063ed2c2e6efd5ae1a22590f4e5f |
User & Date: | bohwaz on 2019-02-14 17:11:35 |
Other Links: | branch diff | manifest | tags |
Context
2019-02-15
| ||
10:13 | Vérification des clés étrangères à l'import check-in: 9d57ccacf4 user: bohwaz tags: dev | |
2019-02-14
| ||
17:11 | Débuts de la màj 0.10.0 check-in: 636b063ed2 user: bohwaz tags: dev | |
17:04 | Notes internes check-in: cf29208fda user: bohwaz tags: dev | |
Changes
Added src/include/data/0.10.0.sql version [254225a2e4].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | ALTER TABLE compta_journal RENAME TO compta_journal_old; .read schema.sql INSERT INTO compta_journal_ecritures (id_journal, compte, debit, credit, montant) SELECT id, compte_credit, 0, CAST(montant * 100 AS INT) FROM compta_journal_old; INSERT INTO compta_journal_ecritures (id_journal, compte, debit, credit, montant) SELECT id, compte_debit, CAST(montant * 100 AS INT), 0 FROM compta_journal_old; INSERT INTO compta_journal (id, libelle, remarques, numero_piece, date, moyen_paiement, numero_cheque, id_exercice, id_auteur, id_categorie, id_projet) SELECT id, libelle, remarques, numero_piece, date, moyen_paiement, numero_cheque, id_exercice, id_auteur, id_categorie, id_projet FROM compta_journal_old; DROP TABLE compta_journal_old; -- CREATE TABLE IF NOT EXISTS compta_comptes_soldes -- -- Soldes des comptes -- ( -- compte TEXT NOT NULL REFERENCES compta_comptes(id) ON DELETE CASCADE, -- exercice INTEGER NULL REFERENCES compta_exercices(id) ON DELETE CASCADE, -- solde INTEGER NOT NULL, -- PRIMARY KEY(compte, exercice) -- ); -- CREATE TRIGGER IF NOT EXISTS ON compta_journal_ecritures DROP TABLE compta_rapprochement; -- Ajout moyens de paiement INSERT OR IGNORE INTO compta_moyens_paiement (code, nom) VALUES ('AU', 'Autre'); INSERT OR IGNORE INTO compta_moyens_paiement (code, nom) VALUES ('AC', 'Autres chèques (vacances, cadeau, etc.)'); |
Modified src/include/data/schema.sql from [899136fdb0] to [f849555ddc].
︙ | ︙ | |||
272 273 274 275 276 277 278 | FOREIGN KEY(id_projet) REFERENCES compta_projets(id) ON DELETE SET NULL ); CREATE INDEX IF NOT EXISTS compta_operations_exercice ON compta_journal (id_exercice); CREATE INDEX IF NOT EXISTS compta_operations_date ON compta_journal (date); CREATE INDEX IF NOT EXISTS compta_operations_auteur ON compta_journal (id_auteur); | | > | > > > > > | | > | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 | FOREIGN KEY(id_projet) REFERENCES compta_projets(id) ON DELETE SET NULL ); CREATE INDEX IF NOT EXISTS compta_operations_exercice ON compta_journal (id_exercice); CREATE INDEX IF NOT EXISTS compta_operations_date ON compta_journal (date); CREATE INDEX IF NOT EXISTS compta_operations_auteur ON compta_journal (id_auteur); CREATE TABLE IF NOT EXISTS compta_journal_lignes -- Ecritures ( id INTEGER PRIMARY KEY NOT NULL, id_journal INTEGER NOT NULL REFERENCES compta_journal (id) ON DELETE CASCADE, compte TEXT NOT NULL REFERENCES compta_comptes(id), -- N° du compte dans le plan comptable credit INTEGER NOT NULL, debit INTEGER NOT NULL, rapprochement INTEGER NOT NULL DEFAULT 0, CONSTRAINT ligne_check1 CHECK ((credit * debit) = 0), CONSTRAINT ligne_check2 CHECK ((credit + debit) > 0) ); CREATE INDEX IF NOT EXISTS compta_operations_comptes ON compta_journal_lignes (compte); CREATE TABLE IF NOT EXISTS compta_moyens_paiement -- Moyens de paiement ( code TEXT NOT NULL PRIMARY KEY, nom TEXT NOT NULL ); INSERT OR IGNORE INTO compta_moyens_paiement (code, nom) VALUES ('AU', 'Autre'); INSERT OR IGNORE INTO compta_moyens_paiement (code, nom) VALUES ('CB', 'Carte bleue'); INSERT OR IGNORE INTO compta_moyens_paiement (code, nom) VALUES ('CH', 'Chèque'); INSERT OR IGNORE INTO compta_moyens_paiement (code, nom) VALUES ('AC', 'Autres chèques (vacances, cadeau, etc.)'); INSERT OR IGNORE INTO compta_moyens_paiement (code, nom) VALUES ('ES', 'Espèces'); INSERT OR IGNORE INTO compta_moyens_paiement (code, nom) VALUES ('PR', 'Prélèvement'); INSERT OR IGNORE INTO compta_moyens_paiement (code, nom) VALUES ('TI', 'TIP'); INSERT OR IGNORE INTO compta_moyens_paiement (code, nom) VALUES ('VI', 'Virement'); CREATE TABLE IF NOT EXISTS compta_categories -- Catégories pour simplifier le plan comptable |
︙ | ︙ |
Modified src/include/lib/Garradin/DB.php from [5b61f7e017] to [ba4dc3d887].
︙ | ︙ | |||
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 | $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); } public function beginSchemaUpdate() { $this->exec('PRAGMA legacy_alter_table = ON;'); $this->exec('PRAGMA foreign_keys = OFF;'); $this->begin(); } public function commitSchemaUpdate() { $this->commit(); $this->exec('PRAGMA legacy_alter_table = OFF;'); $this->exec('PRAGMA foreign_keys = ON;'); } } |
Modified src/www/admin/upgrade.php from [7dd380ea3d] to [a82b7f5302].
︙ | ︙ | |||
66 67 68 69 70 71 72 73 74 | <script> animatedLoader(document.getElementById("loader"), 5); </script>'; flush(); try { if (version_compare($v, '0.7.0', '<')) { | > > > | | 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | <script> animatedLoader(document.getElementById("loader"), 5); </script>'; flush(); try { $keycheck = $db->get('PRAGMA foreign_key_check;'); $keycheck = $keycheck ? count($keycheck) : 0; if (version_compare($v, '0.7.0', '<')) { $db->beginSchemaUpdate(); // 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)', ]); } } | | | | < < | | | 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 140 141 142 143 144 | 'id_auteur' => null, 'contenu' => $content, 'modification' => 'Mise à jour 0.7.0 (transformation SPIP vers SkrivML)', ]); } } $db->commitSchemaUpdate(); } if (version_compare($v, '0.7.2', '<')) { $db->beginSchemaUpdate(); // Mise à jour base de données $db->exec(file_get_contents(ROOT . '/include/data/0.7.2.sql')); $db->commitSchemaUpdate(); } 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->beginSchemaUpdate(); $db->import(ROOT . '/include/data/0.8.0.sql'); $db->commitSchemaUpdate(); $config = Config::getInstance(); // Ajout champ numéro de membre $champs = (array) $config->get('champs_membres')->getAll(); $presets = Membres\Champs::importPresets(); |
︙ | ︙ | |||
158 159 160 161 162 163 164 | // Mise à jour plan comptable: ajout comptes encaissement $comptes = new Compta\Comptes; $comptes->importPlan(); } if (version_compare($v, '0.8.3', '<')) { | < < < | | | | < | | 159 160 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 | // Mise à jour plan comptable: ajout comptes encaissement $comptes = new Compta\Comptes; $comptes->importPlan(); } if (version_compare($v, '0.8.3', '<')) { $db->beginSchemaUpdate(); $db->import(ROOT . '/include/data/0.8.3.sql'); $db->commitSchemaUpdate(); } if (version_compare($v, '0.8.4', '<')) { $db->beginSchemaUpdate(); $db->import(ROOT . '/include/data/0.8.4.sql'); $db->commitSchemaUpdate(); } if (version_compare($v, '0.9.0-rc1', '<')) { $db->beginSchemaUpdate(); $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) // Serait probablement possible en 3-4 lignes de SQL avec |
︙ | ︙ | |||
237 238 239 240 241 242 243 | 'limit' => '10000', ]; $recherche = new Recherche; $recherche->add('Membres inscrits à la lettre d\'information', null, $recherche::TYPE_JSON, 'membres', $query); } | | < | | > > > > > > > > > > > > > > > | 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 | 'limit' => '10000', ]; $recherche = new Recherche; $recherche->add('Membres inscrits à la lettre d\'information', null, $recherche::TYPE_JSON, 'membres', $query); } $db->commitSchemaUpdate(); $config->set('desactiver_site', false); $config->save(); } if (version_compare($v, '0.9.1', '<')) { // Mise à jour plan comptable: ajout compte licences fédérales $comptes = new Compta\Comptes; $comptes->importPlan(); $db->beginSchemaUpdate(); $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->commitSchemaUpdate(); } if (version_compare($v, '0.9.1', '>=') && version_compare($v, '0.10.0', '<')) { // Mise à jour plan comptable: ajout compte 891, renommage compte 890 (typo dans 0.9.1) $comptes = new Compta\Comptes; $comptes->importPlan(); } if (version_compare($v, '0.10.0', '<')) { $db->beginSchemaUpdate(); $db->import(ROOT . '/include/data/0.10.0.sql'); $db->commitSchemaUpdate(); } $keycheck_after = $db->get('PRAGMA foreign_key_check;'); $keycheck_after = $keycheck_after ? count($keycheck_after) : 0; if ($keycheck_after != $keycheck) { throw new \LogicException('Erreur de cohérence dans la base de données lors de la mise à jour (clés étrangères)'); } Utils::clearCaches(); $config->setVersion(garradin_version()); Static_Cache::remove('upgrade'); |
︙ | ︙ |