96 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
--
 | 
						|
-- Copyright © 2016-2025 The Thingsboard Authors
 | 
						|
--
 | 
						|
-- Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
-- you may not use this file except in compliance with the License.
 | 
						|
-- You may obtain a copy of the License at
 | 
						|
--
 | 
						|
--     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
--
 | 
						|
-- Unless required by applicable law or agreed to in writing, software
 | 
						|
-- distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
-- See the License for the specific language governing permissions and
 | 
						|
-- limitations under the License.
 | 
						|
--
 | 
						|
 | 
						|
-- UPDATE SAVE TIME SERIES NODES START
 | 
						|
 | 
						|
UPDATE rule_node
 | 
						|
SET configuration = (
 | 
						|
    (configuration::jsonb - 'skipLatestPersistence')
 | 
						|
        || jsonb_build_object(
 | 
						|
            'processingSettings', jsonb_build_object(
 | 
						|
                    'type',       'ADVANCED',
 | 
						|
                    'timeseries',       jsonb_build_object('type', 'ON_EVERY_MESSAGE'),
 | 
						|
                    'latest',           jsonb_build_object('type', 'SKIP'),
 | 
						|
                    'webSockets',       jsonb_build_object('type', 'ON_EVERY_MESSAGE'),
 | 
						|
                    'calculatedFields', jsonb_build_object('type', 'ON_EVERY_MESSAGE')
 | 
						|
                                   )
 | 
						|
           )
 | 
						|
    )::text,
 | 
						|
    configuration_version = 1
 | 
						|
WHERE type = 'org.thingsboard.rule.engine.telemetry.TbMsgTimeseriesNode'
 | 
						|
  AND configuration_version = 0
 | 
						|
  AND configuration::jsonb ->> 'skipLatestPersistence' = 'true';
 | 
						|
 | 
						|
UPDATE rule_node
 | 
						|
SET configuration = (
 | 
						|
    (configuration::jsonb - 'skipLatestPersistence')
 | 
						|
        || jsonb_build_object(
 | 
						|
            'processingSettings', jsonb_build_object(
 | 
						|
                    'type', 'ON_EVERY_MESSAGE'
 | 
						|
                                   )
 | 
						|
           )
 | 
						|
    )::text,
 | 
						|
    configuration_version = 1
 | 
						|
WHERE type = 'org.thingsboard.rule.engine.telemetry.TbMsgTimeseriesNode'
 | 
						|
  AND configuration_version = 0
 | 
						|
  AND (configuration::jsonb ->> 'skipLatestPersistence' != 'true' OR configuration::jsonb ->> 'skipLatestPersistence' IS NULL);
 | 
						|
 | 
						|
-- UPDATE SAVE TIME SERIES NODES END
 | 
						|
 | 
						|
-- UPDATE SAVE ATTRIBUTES NODES START
 | 
						|
 | 
						|
UPDATE rule_node
 | 
						|
SET configuration = (
 | 
						|
    configuration::jsonb
 | 
						|
        || jsonb_build_object(
 | 
						|
            'processingSettings', jsonb_build_object('type', 'ON_EVERY_MESSAGE')
 | 
						|
           )
 | 
						|
    )::text,
 | 
						|
    configuration_version = 3
 | 
						|
WHERE type = 'org.thingsboard.rule.engine.telemetry.TbMsgAttributesNode'
 | 
						|
  AND configuration_version = 2;
 | 
						|
 | 
						|
-- UPDATE SAVE ATTRIBUTES NODES END
 | 
						|
 | 
						|
ALTER TABLE api_usage_state ADD COLUMN IF NOT EXISTS version BIGINT DEFAULT 1;
 | 
						|
 | 
						|
-- UPDATE TENANT PROFILE CALCULATED FIELD LIMITS START
 | 
						|
 | 
						|
UPDATE tenant_profile
 | 
						|
SET profile_data = profile_data
 | 
						|
    || jsonb_build_object(
 | 
						|
        'configuration', profile_data->'configuration' || jsonb_build_object(
 | 
						|
        'maxCalculatedFieldsPerEntity', COALESCE(profile_data->'configuration'->>'maxCalculatedFieldsPerEntity', '5')::bigint,
 | 
						|
        'maxArgumentsPerCF', COALESCE(profile_data->'configuration'->>'maxArgumentsPerCF', '10')::bigint,
 | 
						|
        'maxDataPointsPerRollingArg', COALESCE(profile_data->'configuration'->>'maxDataPointsPerRollingArg', '1000')::bigint,
 | 
						|
        'maxStateSizeInKBytes', COALESCE(profile_data->'configuration'->>'maxStateSizeInKBytes', '32')::bigint,
 | 
						|
        'maxSingleValueArgumentSizeInKBytes', COALESCE(profile_data->'configuration'->>'maxSingleValueArgumentSizeInKBytes', '2')::bigint
 | 
						|
        )
 | 
						|
    )
 | 
						|
WHERE profile_data->'configuration'->>'maxCalculatedFieldsPerEntity' IS NULL;
 | 
						|
 | 
						|
-- UPDATE TENANT PROFILE CALCULATED FIELD LIMITS END
 | 
						|
 | 
						|
-- UPDATE TENANT PROFILE DEBUG DURATION START
 | 
						|
 | 
						|
UPDATE tenant_profile
 | 
						|
SET profile_data = jsonb_set(profile_data, '{configuration,maxDebugModeDurationMinutes}', '15', true)
 | 
						|
WHERE
 | 
						|
    profile_data->'configuration' ? 'maxDebugModeDurationMinutes' = false
 | 
						|
    OR (profile_data->'configuration'->>'maxDebugModeDurationMinutes')::int = 0;
 | 
						|
 | 
						|
-- UPDATE TENANT PROFILE DEBUG DURATION END
 |