From 6903513a23dd84839b0a5f5fd55645e137ea2a32 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 17 Jul 2023 10:01:46 +0200 Subject: [minilinux] Make title db columns longer --- modules-available/minilinux/inc/minilinux.inc.php | 4 ++-- modules-available/minilinux/install.inc.php | 17 ++++++++++++----- modules-available/permissionmanager/install.inc.php | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/modules-available/minilinux/inc/minilinux.inc.php b/modules-available/minilinux/inc/minilinux.inc.php index 09daf6c0..47d14a86 100644 --- a/modules-available/minilinux/inc/minilinux.inc.php +++ b/modules-available/minilinux/inc/minilinux.inc.php @@ -90,7 +90,7 @@ class MiniLinux ON DUPLICATE KEY UPDATE title = VALUES(title), color = VALUES(color), description = VALUES(description)', [ 'branchid' => $branchid, 'sourceid' => $sourceid, - 'title' => $title, + 'title' => mb_substr($title, 0, 150), 'color' => $color, 'description' => $description, ]); @@ -158,7 +158,7 @@ class MiniLinux dateline = VALUES(dateline), data = VALUES(data), orphan = 0', [ 'versionid' => $versionid, 'branchid' => $branchid, - 'title' => $title, + 'title' => mb_substr($title, 0, 150), 'description' => $description, 'dateline' => $dateline, 'data' => $data, diff --git a/modules-available/minilinux/install.inc.php b/modules-available/minilinux/install.inc.php index 12b5c69c..7ef82d74 100644 --- a/modules-available/minilinux/install.inc.php +++ b/modules-available/minilinux/install.inc.php @@ -2,7 +2,7 @@ $result[] = tableCreate('minilinux_source', " `sourceid` varchar(8) CHARACTER SET ascii NOT NULL, - `title` varchar(100) NOT NULL, + `title` varchar(150) NOT NULL, `url` varchar(200) NOT NULL, `lastupdate` int(10) UNSIGNED NOT NULL DEFAULT '0', `taskid` char(36) CHARACTER SET ascii DEFAULT NULL, @@ -13,7 +13,7 @@ $result[] = tableCreate('minilinux_source', " $result[] = tableCreate('minilinux_branch', " `sourceid` varchar(8) CHARACTER SET ascii DEFAULT NULL, `branchid` varchar(40) CHARACTER SET ascii NOT NULL, - `title` varchar(100) NOT NULL, + `title` varchar(150) NOT NULL, `color` varchar(7) NOT NULL, `description` blob NOT NULL, PRIMARY KEY (`branchid`), @@ -22,7 +22,7 @@ $result[] = tableCreate('minilinux_branch', " $result[] = tableCreate('minilinux_version', " `branchid` varchar(40) CHARACTER SET ascii NOT NULL, `versionid` varchar(72) CHARACTER SET ascii NOT NULL, - `title` varchar(100) NOT NULL, + `title` varchar(150) NOT NULL, `description` blob NOT NULL, `dateline` int(10) UNSIGNED NOT NULL, `data` blob NOT NULL, @@ -43,7 +43,7 @@ $result[] = tableAddConstraint('minilinux_branch', 'sourceid', 'minilinux_source // 2022-10-17: Add color to branch, description to version if (!tableHasColumn('minilinux_branch', 'color')) { - if (Database::exec("ALTER TABLE minilinux_branch ADD COLUMN `color` varchar(7) NOT NULL DEFAULT '' AFTER `title`") !== false) { + if (Database::exec("ALTER TABLE `minilinux_branch` ADD COLUMN `color` varchar(7) NOT NULL DEFAULT '' AFTER `title`") !== false) { $result[] = UPDATE_DONE; } else { finalResponse(UPDATE_FAILED, Database::lastError()); @@ -51,11 +51,18 @@ if (!tableHasColumn('minilinux_branch', 'color')) { } if (!tableHasColumn('minilinux_version', 'description')) { // BLOB/TEXT cannot have non-NULL default on older MariaDB - if (Database::exec("ALTER TABLE minilinux_version ADD COLUMN `description` blob NULL DEFAULT NULL AFTER `title`") !== false) { + if (Database::exec("ALTER TABLE `minilinux_version` ADD COLUMN `description` blob NULL DEFAULT NULL AFTER `title`") !== false) { $result[] = UPDATE_DONE; } else { finalResponse(UPDATE_FAILED, Database::lastError()); } } +// 2023-07-17: Make title columns larger +foreach (['minilinux_source', 'minilinux_branch', 'minilinux_version'] as $table) { + if (stripos(tableColumnType($table, 'title'), 'varchar(150)') === false) { + Database::exec("ALTER TABLE `$table` MODIFY `title` varchar(150) NOT NULL"); + } +} + responseFromArray($result); diff --git a/modules-available/permissionmanager/install.inc.php b/modules-available/permissionmanager/install.inc.php index 40b153ad..ae6c9b03 100644 --- a/modules-available/permissionmanager/install.inc.php +++ b/modules-available/permissionmanager/install.inc.php @@ -110,7 +110,7 @@ if (!tableHasColumn('role', 'builtin')) { } // 2022-07-06 permissionid too long for older mariadb versions -if (tableColumnType('role_x_permission', 'permissionid') === 'varchar(200)') { +if (stripos(tableColumnType('role_x_permission', 'permissionid'), 'varchar(200)') !== false) { $alter = Database::exec("ALTER TABLE role_x_permission MODIFY permissionid varchar(100) NOT NULL"); if ($alter === false) finalResponse(UPDATE_FAILED, 'Cannot shorten permissionid to 100: ' . Database::lastError()); -- cgit v1.2.3-55-g7522