github.com/mattermost/mattermost-server/v6@v6.7.2/config/migrations/mysql/000002_create_configuration_files.up.sql (about)

     1  CREATE TABLE IF NOT EXISTS ConfigurationFiles (
     2      Name VARCHAR(64) PRIMARY KEY,
     3      Data TEXT NOT NULL,
     4      CreateAt BIGINT NOT NULL,
     5      UpdateAt BIGINT NOT NULL
     6  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
     7  
     8  SET @preparedStatement = (SELECT IF(
     9      (
    10          SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
    11          WHERE table_name = 'ConfigurationFiles'
    12          AND table_schema = DATABASE()
    13          AND column_name = 'Data'
    14          AND NOT data_type = 'MEDIUMTEXT'
    15      ) > 0,
    16      'ALTER TABLE ConfigurationFiles MODIFY Data MEDIUMTEXT;',
    17      'SELECT 1'
    18  ));
    19  
    20  PREPARE alterIfExists FROM @preparedStatement;
    21  EXECUTE alterIfExists;
    22  DEALLOCATE PREPARE alterIfExists;
    23  
    24  SET @preparedStatement = (SELECT IF(
    25      (
    26          SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES AS T
    27          JOIN INFORMATION_SCHEMA.COLUMNS AS C USING (TABLE_SCHEMA, TABLE_NAME)
    28          JOIN INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY AS CCSA ON (T.TABLE_COLLATION = CCSA.COLLATION_NAME)
    29          WHERE TABLE_SCHEMA = DATABASE()
    30          AND C.DATA_TYPE IN ('enum', 'varchar', 'char', 'text', 'mediumtext', 'longtext')
    31          AND TABLE_NAME = 'ConfigurationFiles'
    32          AND C.CHARACTER_SET_NAME != 'utf8mb4'
    33      ) > 0,
    34      'ALTER TABLE ConfigurationFiles CONVERT TO CHARACTER SET utf8mb4;',
    35      'SELECT 1'
    36  ));
    37  
    38  PREPARE alterIfExists FROM @preparedStatement;
    39  EXECUTE alterIfExists;
    40  DEALLOCATE PREPARE alterIfExists;