[MM-43500] Fix MattermostAppID null values with NOT NULL constraint (#20028)

Этот коммит содержится в:
Michael Kochell
2022-04-20 11:05:53 -04:00
коммит произвёл GitHub
родитель 5bd223c836
Коммит 592e4fb5c0
4 изменённых файлов: 70 добавлений и 0 удалений

Просмотреть файл

@@ -0,0 +1,14 @@
SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'OAuthApps'
AND table_schema = DATABASE()
AND column_name = 'MattermostAppID'
) > 0,
'ALTER TABLE OAuthApps MODIFY MattermostAppID varchar(32);',
'SELECT 1'
));
PREPARE alterIfExists FROM @preparedStatement;
EXECUTE alterIfExists;
DEALLOCATE PREPARE alterIfExists;

Просмотреть файл

@@ -0,0 +1,29 @@
SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'OAuthApps'
AND table_schema = DATABASE()
AND column_name = 'MattermostAppID'
) > 0,
'UPDATE OAuthApps SET MattermostAppID = "" WHERE MattermostAppID IS NULL;',
'SELECT 1'
));
PREPARE alterIfExists FROM @preparedStatement;
EXECUTE alterIfExists;
DEALLOCATE PREPARE alterIfExists;
SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'OAuthApps'
AND table_schema = DATABASE()
AND column_name = 'MattermostAppID'
) > 0,
'ALTER TABLE OAuthApps MODIFY MattermostAppID varchar(32) NOT NULL DEFAULT "";',
'SELECT 1'
));
PREPARE alterIfExists FROM @preparedStatement;
EXECUTE alterIfExists;
DEALLOCATE PREPARE alterIfExists;

Просмотреть файл

@@ -0,0 +1,13 @@
DO $$
DECLARE
column_exist boolean := false;
BEGIN
SELECT count(*) != 0 INTO column_exist
FROM information_schema.columns
WHERE table_name = 'oauthapps'
AND column_name = 'mattermostappid';
IF column_exist THEN
ALTER TABLE OAuthApps ALTER COLUMN MattermostAppID DROP NOT NULL;
ALTER TABLE OAuthApps ALTER COLUMN MattermostAppID DROP DEFAULT;
END IF;
END $$;

Просмотреть файл

@@ -0,0 +1,14 @@
DO $$
DECLARE
column_exist boolean := false;
BEGIN
SELECT count(*) != 0 INTO column_exist
FROM information_schema.columns
WHERE table_name = 'oauthapps'
AND column_name = 'mattermostappid';
IF column_exist THEN
UPDATE OAuthApps SET MattermostAppID = '' WHERE MattermostAppID IS NULL;
ALTER TABLE OAuthApps ALTER COLUMN MattermostAppID SET DEFAULT '';
ALTER TABLE OAuthApps ALTER COLUMN MattermostAppID SET NOT NULL;
END IF;
END $$;