97 lines
2.8 KiB
SQL
97 lines
2.8 KiB
SQL
-- Keep device push token schema aligned across tenant business databases.
|
|
-- The current test environment uses:
|
|
-- default -> tinode
|
|
-- system -> meeting_im
|
|
|
|
SET @im_schema = 'tinode';
|
|
SET @im_sql = (
|
|
SELECT IF(
|
|
COUNT(*) = 0,
|
|
CONCAT('ALTER TABLE ', @im_schema, '.im_device_push_tokens ADD COLUMN sdk_version VARCHAR(64) NOT NULL DEFAULT '''' AFTER platform'),
|
|
'SELECT 1'
|
|
)
|
|
FROM information_schema.columns
|
|
WHERE table_schema = @im_schema
|
|
AND table_name = 'im_device_push_tokens'
|
|
AND column_name = 'sdk_version'
|
|
);
|
|
PREPARE im_stmt FROM @im_sql;
|
|
EXECUTE im_stmt;
|
|
DEALLOCATE PREPARE im_stmt;
|
|
|
|
SET @im_sql = (
|
|
SELECT IF(
|
|
COUNT(*) = 0,
|
|
CONCAT('ALTER TABLE ', @im_schema, '.im_device_push_tokens ADD COLUMN push_env VARCHAR(32) NOT NULL DEFAULT '''' AFTER sdk_version'),
|
|
'SELECT 1'
|
|
)
|
|
FROM information_schema.columns
|
|
WHERE table_schema = @im_schema
|
|
AND table_name = 'im_device_push_tokens'
|
|
AND column_name = 'push_env'
|
|
);
|
|
PREPARE im_stmt FROM @im_sql;
|
|
EXECUTE im_stmt;
|
|
DEALLOCATE PREPARE im_stmt;
|
|
|
|
SET @im_sql = (
|
|
SELECT IF(
|
|
COUNT(*) = 0,
|
|
CONCAT('ALTER TABLE ', @im_schema, '.im_device_push_tokens ADD COLUMN notification_permission VARCHAR(32) NOT NULL DEFAULT '''' AFTER push_env'),
|
|
'SELECT 1'
|
|
)
|
|
FROM information_schema.columns
|
|
WHERE table_schema = @im_schema
|
|
AND table_name = 'im_device_push_tokens'
|
|
AND column_name = 'notification_permission'
|
|
);
|
|
PREPARE im_stmt FROM @im_sql;
|
|
EXECUTE im_stmt;
|
|
DEALLOCATE PREPARE im_stmt;
|
|
|
|
SET @im_schema = 'meeting_im';
|
|
SET @im_sql = (
|
|
SELECT IF(
|
|
COUNT(*) = 0,
|
|
CONCAT('ALTER TABLE ', @im_schema, '.im_device_push_tokens ADD COLUMN sdk_version VARCHAR(64) NOT NULL DEFAULT '''' AFTER platform'),
|
|
'SELECT 1'
|
|
)
|
|
FROM information_schema.columns
|
|
WHERE table_schema = @im_schema
|
|
AND table_name = 'im_device_push_tokens'
|
|
AND column_name = 'sdk_version'
|
|
);
|
|
PREPARE im_stmt FROM @im_sql;
|
|
EXECUTE im_stmt;
|
|
DEALLOCATE PREPARE im_stmt;
|
|
|
|
SET @im_sql = (
|
|
SELECT IF(
|
|
COUNT(*) = 0,
|
|
CONCAT('ALTER TABLE ', @im_schema, '.im_device_push_tokens ADD COLUMN push_env VARCHAR(32) NOT NULL DEFAULT '''' AFTER sdk_version'),
|
|
'SELECT 1'
|
|
)
|
|
FROM information_schema.columns
|
|
WHERE table_schema = @im_schema
|
|
AND table_name = 'im_device_push_tokens'
|
|
AND column_name = 'push_env'
|
|
);
|
|
PREPARE im_stmt FROM @im_sql;
|
|
EXECUTE im_stmt;
|
|
DEALLOCATE PREPARE im_stmt;
|
|
|
|
SET @im_sql = (
|
|
SELECT IF(
|
|
COUNT(*) = 0,
|
|
CONCAT('ALTER TABLE ', @im_schema, '.im_device_push_tokens ADD COLUMN notification_permission VARCHAR(32) NOT NULL DEFAULT '''' AFTER push_env'),
|
|
'SELECT 1'
|
|
)
|
|
FROM information_schema.columns
|
|
WHERE table_schema = @im_schema
|
|
AND table_name = 'im_device_push_tokens'
|
|
AND column_name = 'notification_permission'
|
|
);
|
|
PREPARE im_stmt FROM @im_sql;
|
|
EXECUTE im_stmt;
|
|
DEALLOCATE PREPARE im_stmt;
|