[TikiWiki-commits] [Git][tikiwiki/tiki][27.x] [FIX] Make update-secdb last step to avoid conflict when updating db
"ushindi bienvenu \(@usbbush\) via TikiWiki-cvs" <[email protected]>
| Newsgroups | gmane.comp.cms.tiki.cvs |
|---|---|
| Message-ID | <6a145613940cd_381a12602484f@gitlab-sidekiq-low-urgency-cpu-bound-v2-d7f87744c-2s28g.mail> |
ushindi bienvenu pushed to branch 27.x at Tiki Wiki CMS Groupware / Tiki
Commits:
8d249f3b by ushindi bienvenu at 2026-05-25T13:54:35+00:00
[FIX] Make update-secdb last step to avoid conflict when updating db
---
* [FIX] Make update-secdb last step
See merge request tikiwiki/tiki!10368
- - - - -
4 changed files:
- db/tiki.sql
- installer/Installer.php
- − installer/schema/20260524_fix_18lts_upgrade_schema_tiki.php
- + installer/schema/20260525_increase_filename_len_in_pk_tiki.sql
Changes:
=====================================
db/tiki.sql
=====================================
@@ -2212,7 +2212,7 @@ DROP TABLE IF EXISTS `tiki_secdb`;
CREATE TABLE tiki_secdb(
`md5_value` varchar(32) NOT NULL,
`filename` varchar(250) NOT NULL,
- `filename_hash` char(32) NOT NULL,
+ `filename_hash` char(32) NOT NULL DEFAULT '',
`tiki_version` varchar(60) NOT NULL,
`severity` int(4) NOT NULL default '0',
PRIMARY KEY (`filename_hash`, `tiki_version`(20)),
=====================================
installer/Installer.php
=====================================
@@ -117,6 +117,18 @@ class Installer extends TikiDb_Bridge implements SplSubject
$this->assureDefaultCharSetIsAlignedWithTikiSchema();
$this->assureInnoDdTableRowFormatIsDynamicOrBetter();
+ foreach (Patch::getPatches([Patch::NOT_APPLIED]) as $patchName => $patch) {
+ try {
+ $this->installPatch($patchName);
+ } catch (Exception $e) {
+ if ($e->getCode() != 2) {
+ throw $e;
+ } else {
+ return false;
+ }
+ }
+ }
+
$TWV = new TWVersion();
$dbversion_tiki = $TWV->version;
@@ -125,7 +137,6 @@ class Installer extends TikiDb_Bridge implements SplSubject
$secdb = __DIR__ . '/../' . TIKI_BASE_SQL_SCHEMA_PATH . '/tiki-secdb_' . $dbversion_tiki . '_mysql.sql';
$secdbData = __DIR__ . '/../' . TIKI_BASE_SQL_SCHEMA_PATH . '/tiki-secdb_' . $dbversion_tiki . '_mysql.data';
if (file_exists($secdbData)) {
- $this->assureSecdbTableCanLoadHashedFilenames();
// A MySQL datafile exists
$truncateTable = true;
$rc = $this->runDataFile($secdbData, 'tiki_secdb', $truncateTable);
@@ -133,26 +144,13 @@ class Installer extends TikiDb_Bridge implements SplSubject
// The batch loader failed
if (file_exists($secdb)) {
// Run single inserts
- $this->assureSecdbTableCanLoadHashedFilenames();
$this->runFile($secdb, false);
}
}
} elseif (file_exists($secdb)) {
// Run single inserts
- $this->assureSecdbTableCanLoadHashedFilenames();
$this->runFile($secdb, false);
}
- foreach (Patch::getPatches([Patch::NOT_APPLIED]) as $patchName => $patch) {
- try {
- $this->installPatch($patchName);
- } catch (Exception $e) {
- if ($e->getCode() != 2) {
- throw $e;
- } else {
- return false;
- }
- }
- }
foreach ($this->scripts as $script) {
$this->runScript($script);
@@ -439,27 +437,6 @@ class Installer extends TikiDb_Bridge implements SplSubject
return in_array($tableName, $list);
}
- private function assureSecdbTableCanLoadHashedFilenames(): void
- {
- if (! $this->tableExists('tiki_secdb')) {
- return;
- }
-
- $this->query('DELETE FROM `tiki_secdb`');
-
- $filenameHashColumn = $this->query("SHOW COLUMNS FROM `tiki_secdb` LIKE 'filename_hash'", countQueries: false);
- if (! $filenameHashColumn || empty($filenameHashColumn->result)) {
- $this->query("ALTER TABLE `tiki_secdb` ADD COLUMN `filename_hash` CHAR(32) NOT NULL AFTER `filename`");
- }
-
- $primaryKey = $this->fetchAll("SHOW INDEX FROM `tiki_secdb` WHERE Key_name = 'PRIMARY'") ?: [];
- if (! empty($primaryKey)) {
- $this->query('ALTER TABLE `tiki_secdb` DROP PRIMARY KEY');
- }
-
- $this->query("ALTER TABLE `tiki_secdb` ADD PRIMARY KEY (`filename_hash`, `tiki_version`(20))");
- }
-
public function isInstalled()
{
return $this->tableExists('tiki_preferences');
=====================================
installer/schema/20260524_fix_18lts_upgrade_schema_tiki.php deleted
=====================================
@@ -1,23 +0,0 @@
-<?php
-
-// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
-//
-// All Rights Reserved. See copyright.txt for details and a complete list of authors.
-// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
-
-function upgrade_20260524_fix_18lts_upgrade_schema_tiki($installer)
-{
- if ($installer->tableExists('tiki_secdb')) {
- $installer->query('ALTER TABLE `tiki_secdb` DROP PRIMARY KEY');
- $installer->query("ALTER TABLE `tiki_secdb` ADD PRIMARY KEY (`filename_hash`, `tiki_version`(20))");
- }
-
- if ($installer->tableExists('tiki_payment_requests')) {
- $dueDateColumn = $installer->query("SHOW COLUMNS FROM `tiki_payment_requests` LIKE 'due_date'", countQueries: false);
- if ($dueDateColumn && ! empty($dueDateColumn->result)) {
- $installer->query("ALTER TABLE `tiki_payment_requests` CHANGE `due_date` `due_date` TIMESTAMP NULL DEFAULT NULL");
- }
- }
-
- return true;
-}
=====================================
installer/schema/20260525_increase_filename_len_in_pk_tiki.sql
=====================================
@@ -0,0 +1,10 @@
+ALTER TABLE `tiki_secdb`
+ ADD COLUMN `filename_hash` CHAR(32) NOT NULL DEFAULT '' AFTER `filename`;
+
+UPDATE `tiki_secdb`
+SET `filename_hash` = MD5(`filename`)
+WHERE `filename_hash` = '';
+
+ALTER TABLE `tiki_secdb`
+DROP PRIMARY KEY,
+ADD PRIMARY KEY (`filename_hash`, `tiki_version`(20));
\ No newline at end of file
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/8d249f3baaef678b6e073ba32fa4021a1cfb2897
--
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/8d249f3baaef678b6e073ba32fa4021a1cfb2897
You're receiving this email because of your account on gitlab.com. Manage all notifications: https://gitlab.com/-/profile/notifications | Help: https://gitlab.com/help
_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs