[MM-45868] Add teamId to Threads table (#20915)

* Add teamId to Threads table

* Get rid of multiple teamId reads

* Fix failed test

* Add teamId to standard queries

* Fix linter

* Get teamId from db
Этот коммит содержится в:
Shota Gvinepadze
2022-10-24 16:10:27 +04:00
коммит произвёл GitHub
родитель 6ac0faf99e
Коммит fab9d350c7
13 изменённых файлов: 777 добавлений и 114 удалений

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

@@ -186,6 +186,8 @@ db/migrations/mysql/000092_add_createat_to_teammembers.down.sql
db/migrations/mysql/000092_add_createat_to_teammembers.up.sql
db/migrations/mysql/000093_notify_admin.down.sql
db/migrations/mysql/000093_notify_admin.up.sql
db/migrations/mysql/000094_threads_teamid.down.sql
db/migrations/mysql/000094_threads_teamid.up.sql
db/migrations/postgres/000001_create_teams.down.sql
db/migrations/postgres/000001_create_teams.up.sql
db/migrations/postgres/000002_create_team_members.down.sql
@@ -372,3 +374,5 @@ db/migrations/postgres/000092_add_createat_to_teamembers.down.sql
db/migrations/postgres/000092_add_createat_to_teamembers.up.sql
db/migrations/postgres/000093_notify_admin.down.sql
db/migrations/postgres/000093_notify_admin.up.sql
db/migrations/postgres/000094_threads_teamid.down.sql
db/migrations/postgres/000094_threads_teamid.up.sql

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

@@ -0,0 +1,14 @@
SET @preparedStatement = (SELECT IF(
EXISTS(
SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_name = 'Threads'
AND table_schema = DATABASE()
AND column_name = 'TeamId'
),
'ALTER TABLE Threads DROP COLUMN TeamId;',
'SELECT 1;'
));
PREPARE removeColumnIfExists FROM @preparedStatement;
EXECUTE removeColumnIfExists;
DEALLOCATE PREPARE removeColumnIfExists;

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

@@ -0,0 +1,19 @@
SET @preparedStatement = (SELECT IF(
NOT EXISTS(
SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Threads'
AND table_schema = DATABASE()
AND column_name = 'TeamId'
),
'ALTER TABLE Threads ADD COLUMN TeamId varchar(26) DEFAULT NULL;',
'SELECT 1;'
));
PREPARE addColumnIfNotExists FROM @preparedStatement;
EXECUTE addColumnIfNotExists;
DEALLOCATE PREPARE addColumnIfNotExists;
UPDATE Threads, Channels
SET Threads.TeamId = Channels.TeamId
WHERE Channels.Id = Threads.ChannelId
AND Threads.TeamId IS NULL;

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

@@ -0,0 +1 @@
ALTER TABLE threads DROP COLUMN IF EXISTS teamid;

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

@@ -0,0 +1,2 @@
ALTER TABLE threads ADD COLUMN IF NOT EXISTS teamid VARCHAR(26);
UPDATE threads SET teamid = channels.teamid FROM channels WHERE threads.teamid IS NULL AND channels.id = threads.channelid;