Overview
Comment: | Fix upgrade process for very slow servers, sometimes it failed after the alter table, not sure why, but this fixes it |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | stable |
Files: | files | file ages | folders |
SHA3-256: |
b6eefbb81e7f0da5a4451cab42db7c4e |
User & Date: | bohwaz on 2022-01-24 13:14:08 |
Other Links: | manifest | tags |
Context
2022-01-24
| ||
14:10 | Always send list of users to subscribe check-in: 82051d0f88 user: bohwaz tags: trunk, stable | |
13:14 | Fix upgrade process for very slow servers, sometimes it failed after the alter table, not sure why, but this fixes it check-in: b6eefbb81e user: bohwaz tags: trunk, stable | |
2022-01-21
| ||
01:49 | Fix copy service check-in: ab0846d770 user: bohwaz tags: trunk, stable | |
Changes
Modified src/include/lib/Garradin/Upgrade.php from [6baaa668b0] to [66c8d5b4d2].
︙ | ︙ | |||
370 371 372 373 374 375 376 377 378 | $db->begin(); // Re-do the 1.1.15 migration as the LIKE did not work and accounts were not updated $db->import(ROOT . '/include/data/1.1.15_migration.sql'); $db->commit(); } if (version_compare($v, '1.1.19', '<')) { // Some people were able to insert invalid charsets in the database, this messes up the indexes // Let's try to fix that | > > < | < > > > > | 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 | $db->begin(); // Re-do the 1.1.15 migration as the LIKE did not work and accounts were not updated $db->import(ROOT . '/include/data/1.1.15_migration.sql'); $db->commit(); } if (version_compare($v, '1.1.19', '<')) { $db->exec('VACUUM;'); // This will rebuild the index correctly, fixing the corrupted DB // Some people were able to insert invalid charsets in the database, this messes up the indexes // Let's try to fix that $db->createFunction('utf8_encode', [Utils::class, 'utf8_encode']); $db->beginSchemaUpdate(); // Now let's fix the content itself $res = $db->first('SELECT * FROM membres WHERE 1;'); $columns = array_keys((array) $res); $columns = array_map(fn($c) => sprintf('"%s" = utf8_encode("%1$s")', $c), $columns); $db->exec(sprintf('UPDATE membres SET %s;', implode(', ', $columns))); // Let's re-create users table with the correct index $champs = Config::getInstance()->champs_membres; $db->exec('ALTER TABLE membres RENAME TO membres_old;'); $db->commit(); $db->close(); $db->connect(); $db->beginSchemaUpdate(); $champs->create('membres'); $champs->copy('membres_old', 'membres'); $db->exec('DROP TABLE membres_old;'); // Set new types for accounts $db->import(ROOT . '/include/data/1.1.19_migration.sql'); |
︙ | ︙ | |||
427 428 429 430 431 432 433 434 435 436 437 438 439 440 | // Réinstaller les plugins système si nécessaire Plugin::checkAndInstallSystemPlugins(); Plugin::upgradeAllIfRequired(); } catch (\Exception $e) { $s = new Sauvegarde; $s->restoreFromLocal($backup_name); $s->remove($backup_name); Static_Cache::remove('upgrade'); throw $e; } | > > > > | 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 | // Réinstaller les plugins système si nécessaire Plugin::checkAndInstallSystemPlugins(); Plugin::upgradeAllIfRequired(); } catch (\Exception $e) { if ($db->inTransaction()) { $db->rollback(); } $s = new Sauvegarde; $s->restoreFromLocal($backup_name); $s->remove($backup_name); Static_Cache::remove('upgrade'); throw $e; } |
︙ | ︙ |