diff options
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; |
