Overview
Comment: | Fix backup restore with custom NOCASE collation, add migration |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | stable |
Files: | files | file ages | folders |
SHA3-256: |
bbba6082eb71c9c1378fd3d2262edbd3 |
User & Date: | bohwaz on 2021-06-01 21:34:00 |
Other Links: | manifest | tags |
Context
2021-06-01
| ||
21:37 | Fix index check-in: db1d98471a user: bohwaz tags: trunk, stable | |
21:34 | Fix backup restore with custom NOCASE collation, add migration check-in: bbba6082eb user: bohwaz tags: trunk, stable | |
21:28 | Fix reminders sent when that reminder was already sent before but since has been renewed check-in: 85aaa801cb user: bohwaz tags: trunk | |
Changes
Modified src/VERSION from [909578fd02] to [798bc47d06].
|
| | | 1 | 1.1.7 |
Added src/include/data/1.1.7_migration.sql version [cf6b0bcae6].
> > > > > > > > | 1 2 3 4 5 6 7 8 | ALTER TABLE services_reminders_sent RENAME TO srs_old; -- Missing acc_years_delete trigger, again, because of missing symlink in previous release -- Also add new column in services_reminders_sent .read schema.sql INSERT INTO services_reminders_sent SELECT id, id_user, id_service, id_reminder, date, date FROM srs_old; |
Modified src/include/lib/Garradin/DB.php from [e8db354fd5] to [7ce0e3f7d3].
︙ | ︙ | |||
47 48 49 50 51 52 53 | $this->db->busyTimeout(10 * 1000); // Performance enhancement // see https://www.cs.utexas.edu/~jaya/slides/apsys17-sqlite-slides.pdf // https://ericdraken.com/sqlite-performance-testing/ $this->exec(sprintf('PRAGMA journal_mode = WAL; PRAGMA synchronous = NORMAL; PRAGMA journal_size_limit = %d;', 32 * 1024 * 1024)); | > > > > > | | | | | 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | $this->db->busyTimeout(10 * 1000); // Performance enhancement // see https://www.cs.utexas.edu/~jaya/slides/apsys17-sqlite-slides.pdf // https://ericdraken.com/sqlite-performance-testing/ $this->exec(sprintf('PRAGMA journal_mode = WAL; PRAGMA synchronous = NORMAL; PRAGMA journal_size_limit = %d;', 32 * 1024 * 1024)); self::registerCustomFunctions($this->db); } static public function registerCustomFunctions($db) { $db->createFunction('dirname', [Utils::class, 'dirname']); $db->createFunction('basename', [Utils::class, 'basename']); $db->createFunction('like', [self::class, 'unicodeLike']); $db->createCollation('NOCASE', [Utils::class, 'unicodeCaseComparison']); } public function version(): ?string { if (-1 === $this->_version) { $this->connect(); $this->_version = self::getVersion($this->db); |
︙ | ︙ |
Modified src/include/lib/Garradin/Sauvegarde.php from [b14c3f16f0] to [c99705a80b].
︙ | ︙ | |||
413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 | } catch (\Exception $e) { throw new UserException('Le fichier fourni n\'est pas une base de données valide. ' . 'Message d\'erreur de SQLite : ' . $e->getMessage(), self::NOT_A_DB); } try { // Regardons ensuite si la base de données n'est pas corrompue $check = $db->querySingle('PRAGMA integrity_check;', false); } catch (\Exception $e) { // Ici SQLite peut rejeter un message type "file is encrypted or is not a db" throw new UserException('Le fichier fourni n\'est pas une base de données valide. ' . 'Message d\'erreur de SQLite : ' . $e->getMessage(), self::NOT_A_DB); } if (strtolower(trim($check)) != 'ok') { | > > | | 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 | } catch (\Exception $e) { throw new UserException('Le fichier fourni n\'est pas une base de données valide. ' . 'Message d\'erreur de SQLite : ' . $e->getMessage(), self::NOT_A_DB); } DB::registerCustomFunctions($db); try { // Regardons ensuite si la base de données n'est pas corrompue $check = $db->querySingle('PRAGMA integrity_check;', false); } catch (\Exception $e) { // Ici SQLite peut rejeter un message type "file is encrypted or is not a db" throw new UserException('Le fichier fourni n\'est pas une base de données valide. ' . 'Message d\'erreur de SQLite : ' . $e->getMessage(), self::NOT_A_DB); } if (strtolower(trim($check)) != 'ok') { throw new UserException('Le fichier fourni est corrompu. Erreur SQLite : ' . $check); } if ($check_foreign_keys) { $check = $db->querySingle('PRAGMA foreign_key_check;'); if ($check) |
︙ | ︙ |
Modified src/include/lib/Garradin/Upgrade.php from [522a92b2cc] to [ec884a2e61].
︙ | ︙ | |||
278 279 280 281 282 283 284 | $file = Files::get(Config::DEFAULT_FILES['admin_homepage']); $config->set('admin_homepage', $file ? Config::DEFAULT_FILES['admin_homepage'] : null); $config->save(); } if (version_compare($v, '1.1.7', '<')) { | < | | 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 | $file = Files::get(Config::DEFAULT_FILES['admin_homepage']); $config->set('admin_homepage', $file ? Config::DEFAULT_FILES['admin_homepage'] : null); $config->save(); } if (version_compare($v, '1.1.7', '<')) { $db->begin(); $db->import(ROOT . '/include/data/1.1.7_migration.sql'); $db->commit(); } // Vérification de la cohérence des clés étrangères $db->foreignKeyCheck(); // Delete local cached files |
︙ | ︙ |