diff options
| author | 2024-08-04 19:42:01 +0200 | |
|---|---|---|
| committer | 2024-08-04 19:42:01 +0200 | |
| commit | b034ce2ccbc3363127d96fdc3ede298374f2c5bc (patch) | |
| tree | 4dc0f5990645786a7e7e362a82226dc815d4dc2a /app/SQL/install.sql.mysql.php | |
| parent | b6f7c31e4c03e1f5d9974c39550708844f479942 (diff) | |
SQL test if minor update is needed (#6692)
* SQL test if minor update is needed
fix https://github.com/FreshRSS/FreshRSS/issues/6592
* Minor syntax
Diffstat (limited to 'app/SQL/install.sql.mysql.php')
| -rw-r--r-- | app/SQL/install.sql.mysql.php | 68 |
1 files changed, 42 insertions, 26 deletions
diff --git a/app/SQL/install.sql.mysql.php b/app/SQL/install.sql.mysql.php index 9c989339c..6c766d5c7 100644 --- a/app/SQL/install.sql.mysql.php +++ b/app/SQL/install.sql.mysql.php @@ -114,30 +114,46 @@ DROP TABLE IF EXISTS `_entrytag`, `_tag`, `_entrytmp`, `_entry`, `_feed`, `_cate SQL; $GLOBALS['SQL_UPDATE_MINOR'] = <<<'SQL' -ALTER TABLE `_feed` - MODIFY COLUMN `website` TEXT CHARACTER SET latin1 COLLATE latin1_bin, - MODIFY COLUMN `lastUpdate` BIGINT DEFAULT 0, - MODIFY COLUMN `pathEntries` VARCHAR(4096), - MODIFY COLUMN `httpAuth` VARCHAR(1024) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL; -ALTER TABLE `_entry` - MODIFY COLUMN `date` BIGINT, - MODIFY COLUMN `lastSeen` BIGINT DEFAULT 0, - MODIFY COLUMN `guid` VARCHAR(767) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, - MODIFY COLUMN `title` VARCHAR(8192) NOT NULL, - MODIFY COLUMN `author` VARCHAR(1024), - MODIFY COLUMN `link` VARCHAR(16383) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, - MODIFY COLUMN `tags` VARCHAR(2048); -ALTER TABLE `_entrytmp` - MODIFY COLUMN `date` BIGINT, - MODIFY COLUMN `lastSeen` BIGINT DEFAULT 0, - MODIFY COLUMN `guid` VARCHAR(767) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, - MODIFY COLUMN `title` VARCHAR(8192) NOT NULL, - MODIFY COLUMN `author` VARCHAR(1024), - MODIFY COLUMN `link` VARCHAR(16383) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, - MODIFY COLUMN `tags` VARCHAR(2048); -ALTER TABLE `_tag` - MODIFY COLUMN `name` VARCHAR(191) NOT NULL; -ALTER TABLE `_feed` - DROP INDEX IF EXISTS `url`, -- IF EXISTS works with MariaDB but not with MySQL, so needs PHP workaround - MODIFY COLUMN `url` VARCHAR(32768) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL; +DROP PROCEDURE IF EXISTS update_minor; +CREATE PROCEDURE update_minor() +BEGIN + DECLARE up_to_date INT; + + SELECT COUNT(*) INTO up_to_date FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = REPLACE('`_tag`', '`', '') + AND COLUMN_NAME = 'name' + AND COLUMN_TYPE = 'VARCHAR(191)'; + + IF up_to_date = 0 THEN + ALTER TABLE `_feed` + MODIFY COLUMN `website` TEXT CHARACTER SET latin1 COLLATE latin1_bin, + MODIFY COLUMN `lastUpdate` BIGINT DEFAULT 0, + MODIFY COLUMN `pathEntries` VARCHAR(4096), + MODIFY COLUMN `httpAuth` VARCHAR(1024) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL; + ALTER TABLE `_entry` + MODIFY COLUMN `date` BIGINT, + MODIFY COLUMN `lastSeen` BIGINT DEFAULT 0, + MODIFY COLUMN `guid` VARCHAR(767) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + MODIFY COLUMN `title` VARCHAR(8192) NOT NULL, + MODIFY COLUMN `author` VARCHAR(1024), + MODIFY COLUMN `link` VARCHAR(16383) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + MODIFY COLUMN `tags` VARCHAR(2048); + ALTER TABLE `_entrytmp` + MODIFY COLUMN `date` BIGINT, + MODIFY COLUMN `lastSeen` BIGINT DEFAULT 0, + MODIFY COLUMN `guid` VARCHAR(767) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + MODIFY COLUMN `title` VARCHAR(8192) NOT NULL, + MODIFY COLUMN `author` VARCHAR(1024), + MODIFY COLUMN `link` VARCHAR(16383) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, + MODIFY COLUMN `tags` VARCHAR(2048); + ALTER TABLE `_tag` + MODIFY COLUMN `name` VARCHAR(191) NOT NULL; + ALTER TABLE `_feed` + DROP INDEX IF EXISTS `url`, -- IF EXISTS works with MariaDB but not with MySQL, so needs PHP workaround + MODIFY COLUMN `url` VARCHAR(32768) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL; + END IF; +END; +CALL update_minor(); +DROP PROCEDURE update_minor; SQL; |
