Automatic Merge
Этот коммит содержится в:
David Krauser
2026-05-04 03:17:40 -04:00
коммит произвёл GitHub
родитель 073bd3a6b7
Коммит 9408b98025
22 изменённых файлов: 562 добавлений и 69 удалений

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

@@ -0,0 +1,14 @@
SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Roles'
AND table_schema = DATABASE()
AND column_name = 'SchemeId'
) > 0,
'ALTER TABLE Roles DROP COLUMN SchemeId;',
'SELECT 1'
));
PREPARE dropColumnIfExists FROM @preparedStatement;
EXECUTE dropColumnIfExists;
DEALLOCATE PREPARE dropColumnIfExists;

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

@@ -0,0 +1,14 @@
SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Roles'
AND table_schema = DATABASE()
AND column_name = 'SchemeId'
) > 0,
'SELECT 1',
'ALTER TABLE Roles ADD COLUMN SchemeId varchar(26);'
));
PREPARE addColumnIfNotExists FROM @preparedStatement;
EXECUTE addColumnIfNotExists;
DEALLOCATE PREPARE addColumnIfNotExists;

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

@@ -0,0 +1 @@
UPDATE Roles SET SchemeId = NULL;

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

@@ -0,0 +1,19 @@
UPDATE Roles r
INNER JOIN (
SELECT role_name, MIN(scheme_id) AS scheme_id
FROM (
SELECT Id AS scheme_id, DefaultTeamAdminRole AS role_name FROM Schemes
UNION ALL SELECT Id, DefaultTeamUserRole FROM Schemes
UNION ALL SELECT Id, DefaultTeamGuestRole FROM Schemes
UNION ALL SELECT Id, DefaultChannelAdminRole FROM Schemes
UNION ALL SELECT Id, DefaultChannelUserRole FROM Schemes
UNION ALL SELECT Id, DefaultChannelGuestRole FROM Schemes
UNION ALL SELECT Id, DefaultPlaybookAdminRole FROM Schemes
UNION ALL SELECT Id, DefaultPlaybookMemberRole FROM Schemes
UNION ALL SELECT Id, DefaultRunAdminRole FROM Schemes
UNION ALL SELECT Id, DefaultRunMemberRole FROM Schemes
) expanded
WHERE role_name IS NOT NULL AND role_name <> ''
GROUP BY role_name
) m ON r.Name = m.role_name
SET r.SchemeId = m.scheme_id;

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

@@ -0,0 +1,14 @@
SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_name = 'Roles'
AND table_schema = DATABASE()
AND index_name = 'idx_roles_scheme_id'
) > 0,
'DROP INDEX idx_roles_scheme_id ON Roles;',
'SELECT 1'
));
PREPARE removeIndexIfExists FROM @preparedStatement;
EXECUTE removeIndexIfExists;
DEALLOCATE PREPARE removeIndexIfExists;

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

@@ -0,0 +1,14 @@
SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_name = 'Roles'
AND table_schema = DATABASE()
AND index_name = 'idx_roles_scheme_id'
) > 0,
'SELECT 1',
'CREATE INDEX idx_roles_scheme_id ON Roles(SchemeId);'
));
PREPARE createIndexIfNotExists FROM @preparedStatement;
EXECUTE createIndexIfNotExists;
DEALLOCATE PREPARE createIndexIfNotExists;