aboutsummaryrefslogtreecommitdiff
path: root/app/SQL/install.sql.mysql.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/SQL/install.sql.mysql.php')
-rw-r--r--app/SQL/install.sql.mysql.php68
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;