-- 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;