Mono repo -> Master (#22553)
Combines the following repositories into one: https://github.com/mattermost/mattermost-server https://github.com/mattermost/mattermost-webapp https://github.com/mattermost/focalboard https://github.com/mattermost/mattermost-plugin-playbooks
Этот коммит содержится в:
106
server/channels/db/migrations/mysql/000026_create_preferences.up.sql
Обычный файл
106
server/channels/db/migrations/mysql/000026_create_preferences.up.sql
Обычный файл
@@ -0,0 +1,106 @@
|
||||
CREATE TABLE IF NOT EXISTS Preferences (
|
||||
UserId varchar(26) NOT NULL,
|
||||
Category varchar(32) NOT NULL,
|
||||
Name varchar(32) NOT NULL,
|
||||
Value text,
|
||||
PRIMARY KEY (UserId, Category, Name)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
SET @preparedStatement = (SELECT IF(
|
||||
(
|
||||
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE table_name = 'Preferences'
|
||||
AND table_schema = DATABASE()
|
||||
AND column_name = 'Value'
|
||||
AND data_type != 'text'
|
||||
) > 0,
|
||||
'ALTER TABLE Preferences MODIFY Value text;',
|
||||
'SELECT 1'
|
||||
));
|
||||
|
||||
PREPARE alterIfExists FROM @preparedStatement;
|
||||
EXECUTE alterIfExists;
|
||||
DEALLOCATE PREPARE alterIfExists;
|
||||
|
||||
SET @preparedStatement = (SELECT IF(
|
||||
(
|
||||
SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE table_name = 'Preferences'
|
||||
AND table_schema = DATABASE()
|
||||
AND index_name = 'idx_preferences_category'
|
||||
) > 0,
|
||||
'SELECT 1',
|
||||
'CREATE INDEX idx_preferences_category ON Preferences(Category);'
|
||||
));
|
||||
|
||||
PREPARE createIndexIfNotExists FROM @preparedStatement;
|
||||
EXECUTE createIndexIfNotExists;
|
||||
DEALLOCATE PREPARE createIndexIfNotExists;
|
||||
|
||||
SET @preparedStatement = (SELECT IF(
|
||||
(
|
||||
SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE table_name = 'Preferences'
|
||||
AND table_schema = DATABASE()
|
||||
AND index_name = 'idx_preferences_name'
|
||||
) > 0,
|
||||
'SELECT 1',
|
||||
'CREATE INDEX idx_preferences_name ON Preferences(Name);'
|
||||
));
|
||||
|
||||
PREPARE createIndexIfNotExists FROM @preparedStatement;
|
||||
EXECUTE createIndexIfNotExists;
|
||||
DEALLOCATE PREPARE createIndexIfNotExists;
|
||||
|
||||
CREATE PROCEDURE RenameSolarizedThemeWithUnderscore()
|
||||
BEGIN
|
||||
DECLARE finished INTEGER DEFAULT 0;
|
||||
DECLARE curUserId VARCHAR(26);
|
||||
DECLARE curName VARCHAR(32);
|
||||
DECLARE curValue text;
|
||||
|
||||
DECLARE preference
|
||||
CURSOR FOR
|
||||
SELECT UserId, Name, Value
|
||||
FROM Preferences
|
||||
WHERE Category = 'theme' AND Value LIKE '%solarized_%';
|
||||
|
||||
-- declare NOT FOUND handler
|
||||
DECLARE CONTINUE HANDLER
|
||||
FOR NOT FOUND SET finished = 1;
|
||||
|
||||
OPEN preference;
|
||||
|
||||
getPreference: LOOP
|
||||
FETCH preference INTO curUserId, curName, curValue;
|
||||
IF finished = 1 THEN
|
||||
LEAVE getPreference;
|
||||
END IF;
|
||||
|
||||
-- update affected rows
|
||||
UPDATE Preferences
|
||||
SET Value = replace(curValue, 'solaraized_', 'solarized-')
|
||||
WHERE Category = 'theme'
|
||||
AND UserId = curUserId
|
||||
AND Name = curName;
|
||||
END LOOP getPreference;
|
||||
END;
|
||||
|
||||
CALL RenameSolarizedThemeWithUnderscore();
|
||||
|
||||
DROP PROCEDURE IF EXISTS RenameSolarizedThemeWithUnderscore;
|
||||
|
||||
SET @preparedStatement = (SELECT IF(
|
||||
(
|
||||
SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE table_name = 'Preferences'
|
||||
AND table_schema = DATABASE()
|
||||
AND index_name = 'idx_preferences_user_id'
|
||||
) > 0,
|
||||
'DROP INDEX idx_preferences_user_id ON Preferences;',
|
||||
'SELECT 1'
|
||||
));
|
||||
|
||||
PREPARE removeIndexIfExists FROM @preparedStatement;
|
||||
EXECUTE removeIndexIfExists;
|
||||
DEALLOCATE PREPARE removeIndexIfExists;
|
||||
Ссылка в новой задаче
Block a user