Overview
Comment: | Ne pas générer what-mille copies à chaque mise à jour |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
4c02b190fe39c4d85a082f5e4b979750 |
User & Date: | bohwaz on 2020-01-20 00:13:18 |
Other Links: | branch diff | manifest | tags |
Context
2020-01-20
| ||
00:13 | Migration et mise à jour en utilisant des fichiers versionnés check-in: ecca97c82a user: bohwaz tags: dev | |
00:13 | Ne pas générer what-mille copies à chaque mise à jour check-in: 4c02b190fe user: bohwaz tags: dev | |
00:12 | Garder les anciens schémas SQL pour les migrations qui les utilisent check-in: 757810afbb user: bohwaz tags: dev | |
Changes
Modified src/include/lib/Garradin/Sauvegarde.php from [41b6845214] to [1afcef389e].
︙ | ︙ | |||
179 180 181 182 183 184 185 | } /** * Restaure une sauvegarde locale * @param string $file Le nom de fichier à utiliser comme point de restauration * @return boolean true si la restauration a fonctionné, false sinon */ | | | | 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | } /** * Restaure une sauvegarde locale * @param string $file Le nom de fichier à utiliser comme point de restauration * @return boolean true si la restauration a fonctionné, false sinon */ public function restoreFromLocal($file, bool $do_backup = true) { if (preg_match('!\.\.+!', $file) || !preg_match('!^[\w\d._ -]+$!iu', $file)) { throw new UserException('Nom de fichier non valide.'); } if (!file_exists(DATA_ROOT . '/' . $file)) { throw new UserException('Le fichier fourni n\'existe pas.'); } return $this->restoreDB(DATA_ROOT . '/' . $file, false, false, false); } /** * Restaure une copie distante (fichier envoyé) * @param array $file Tableau provenant de $_FILES * @param integer $user_id ID du membre actuellement connecté, utilisé pour * vérifier qu'il est toujours administrateur dans la sauvegarde |
︙ | ︙ | |||
285 286 287 288 289 290 291 | /** * Restauration de base de données, la fonction qui le fait vraiment * @param string $file Chemin absolu vers la base de données à utiliser * @return mixed true si rien ne va plus, ou self::NEED_UPGRADE si la version de la DB * ne correspond pas à la version de Garradin (mise à jour nécessaire). */ | | | 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 | /** * Restauration de base de données, la fonction qui le fait vraiment * @param string $file Chemin absolu vers la base de données à utiliser * @return mixed true si rien ne va plus, ou self::NEED_UPGRADE si la version de la DB * ne correspond pas à la version de Garradin (mise à jour nécessaire). */ protected function restoreDB($file, $user_id = false, $check_foreign_keys = false, $do_backup = true) { $return = 1; // Essayons déjà d'ouvrir la base de données à restaurer en lecture try { $db = new \SQLite3($file, \SQLITE3_OPEN_READONLY); } |
︙ | ︙ | |||
380 381 382 383 384 385 386 387 388 389 390 391 392 393 | } if (!copy($file, DB_FILE)) { rename($backup, DB_FILE); throw new \RuntimeException('Unable to copy backup DB to main location.'); } if ($return & self::NOT_AN_ADMIN) { // Forcer toutes les catégories à pouvoir gérer les droits $db = DB::getInstance(); $db->update('membres_categories', [ 'droit_membres' => Membres::DROIT_ADMIN, | > > > > | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 | } if (!copy($file, DB_FILE)) { rename($backup, DB_FILE); throw new \RuntimeException('Unable to copy backup DB to main location.'); } if (!$do_backup) { unlink($backup); } if ($return & self::NOT_AN_ADMIN) { // Forcer toutes les catégories à pouvoir gérer les droits $db = DB::getInstance(); $db->update('membres_categories', [ 'droit_membres' => Membres::DROIT_ADMIN, |
︙ | ︙ |