Showing
12 changed files
with
126 additions
and
86 deletions
@@ -15,30 +15,32 @@ | @@ -15,30 +15,32 @@ | ||
15 | -- | 15 | -- |
16 | 16 | ||
17 | CREATE TABLE IF NOT EXISTS device_profile ( | 17 | CREATE TABLE IF NOT EXISTS device_profile ( |
18 | - id uuid NOT NULL CONSTRAINT device_profile_pkey PRIMARY KEY, | ||
19 | - created_time bigint NOT NULL, | ||
20 | - name varchar(255), | ||
21 | - type varchar(255), | ||
22 | - profile_data varchar, | ||
23 | - description varchar, | ||
24 | - search_text varchar(255), | ||
25 | - is_default boolean, | ||
26 | - tenant_id uuid, | ||
27 | - default_rule_chain_id uuid, | ||
28 | - CONSTRAINT device_profile_name_unq_key UNIQUE (tenant_id, name) | 18 | + id uuid NOT NULL CONSTRAINT device_profile_pkey PRIMARY KEY, |
19 | + created_time bigint NOT NULL, | ||
20 | + name varchar(255), | ||
21 | + type varchar(255), | ||
22 | + transport_type varchar(255), | ||
23 | + profile_data jsonb, | ||
24 | + description varchar, | ||
25 | + search_text varchar(255), | ||
26 | + is_default boolean, | ||
27 | + tenant_id uuid, | ||
28 | + default_rule_chain_id uuid, | ||
29 | + CONSTRAINT device_profile_name_unq_key UNIQUE (tenant_id, name), | ||
30 | + CONSTRAINT fk_default_rule_chain_device_profile FOREIGN KEY (default_rule_chain_id) REFERENCES rule_chain(id) | ||
29 | ); | 31 | ); |
30 | 32 | ||
31 | CREATE TABLE IF NOT EXISTS tenant_profile ( | 33 | CREATE TABLE IF NOT EXISTS tenant_profile ( |
32 | - id uuid NOT NULL CONSTRAINT tenant_profile_pkey PRIMARY KEY, | ||
33 | - created_time bigint NOT NULL, | ||
34 | - name varchar(255), | ||
35 | - profile_data varchar, | ||
36 | - description varchar, | ||
37 | - search_text varchar(255), | ||
38 | - is_default boolean, | ||
39 | - isolated_tb_core boolean, | ||
40 | - isolated_tb_rule_engine boolean, | ||
41 | - CONSTRAINT tenant_profile_name_unq_key UNIQUE (name) | 34 | + id uuid NOT NULL CONSTRAINT tenant_profile_pkey PRIMARY KEY, |
35 | + created_time bigint NOT NULL, | ||
36 | + name varchar(255), | ||
37 | + profile_data jsonb, | ||
38 | + description varchar, | ||
39 | + search_text varchar(255), | ||
40 | + is_default boolean, | ||
41 | + isolated_tb_core boolean, | ||
42 | + isolated_tb_rule_engine boolean, | ||
43 | + CONSTRAINT tenant_profile_name_unq_key UNIQUE (name) | ||
42 | ); | 44 | ); |
43 | 45 | ||
44 | CREATE OR REPLACE PROCEDURE update_tenant_profiles() | 46 | CREATE OR REPLACE PROCEDURE update_tenant_profiles() |
@@ -71,9 +73,9 @@ CREATE OR REPLACE PROCEDURE update_device_profiles() | @@ -71,9 +73,9 @@ CREATE OR REPLACE PROCEDURE update_device_profiles() | ||
71 | LANGUAGE plpgsql AS | 73 | LANGUAGE plpgsql AS |
72 | $$ | 74 | $$ |
73 | BEGIN | 75 | BEGIN |
74 | - UPDATE device as d SET device_profile_id = p.id, device_data = '{"configuration":{"type":"DEFAULT"}}' | 76 | + UPDATE device as d SET device_profile_id = p.id, device_data = '{"configuration":{"type":"DEFAULT"}, "transportConfiguration":{"type":"DEFAULT"}}' |
75 | FROM | 77 | FROM |
76 | - (SELECT id, tenant_id from device_profile WHERE is_default = true) as p | ||
77 | - WHERE d.device_profile_id IS NULL AND p.tenant_id = d.tenant_id; | 78 | + (SELECT id, tenant_id, name from device_profile) as p |
79 | + WHERE d.device_profile_id IS NULL AND p.tenant_id = d.tenant_id AND d.type = p.name; | ||
78 | END; | 80 | END; |
79 | $$; | 81 | $$; |
@@ -20,11 +20,13 @@ import org.springframework.beans.factory.annotation.Autowired; | @@ -20,11 +20,13 @@ import org.springframework.beans.factory.annotation.Autowired; | ||
20 | import org.springframework.beans.factory.annotation.Value; | 20 | import org.springframework.beans.factory.annotation.Value; |
21 | import org.springframework.context.annotation.Profile; | 21 | import org.springframework.context.annotation.Profile; |
22 | import org.springframework.stereotype.Service; | 22 | import org.springframework.stereotype.Service; |
23 | +import org.thingsboard.server.common.data.EntitySubtype; | ||
23 | import org.thingsboard.server.common.data.Tenant; | 24 | import org.thingsboard.server.common.data.Tenant; |
24 | import org.thingsboard.server.common.data.page.PageData; | 25 | import org.thingsboard.server.common.data.page.PageData; |
25 | import org.thingsboard.server.common.data.page.PageLink; | 26 | import org.thingsboard.server.common.data.page.PageLink; |
26 | import org.thingsboard.server.dao.dashboard.DashboardService; | 27 | import org.thingsboard.server.dao.dashboard.DashboardService; |
27 | import org.thingsboard.server.dao.device.DeviceProfileService; | 28 | import org.thingsboard.server.dao.device.DeviceProfileService; |
29 | +import org.thingsboard.server.dao.device.DeviceService; | ||
28 | import org.thingsboard.server.dao.tenant.TenantService; | 30 | import org.thingsboard.server.dao.tenant.TenantService; |
29 | import org.thingsboard.server.service.install.sql.SqlDbHelper; | 31 | import org.thingsboard.server.service.install.sql.SqlDbHelper; |
30 | 32 | ||
@@ -39,6 +41,7 @@ import java.sql.SQLException; | @@ -39,6 +41,7 @@ import java.sql.SQLException; | ||
39 | import java.sql.SQLSyntaxErrorException; | 41 | import java.sql.SQLSyntaxErrorException; |
40 | import java.sql.SQLWarning; | 42 | import java.sql.SQLWarning; |
41 | import java.sql.Statement; | 43 | import java.sql.Statement; |
44 | +import java.util.List; | ||
42 | 45 | ||
43 | import static org.thingsboard.server.service.install.DatabaseHelper.ADDITIONAL_INFO; | 46 | import static org.thingsboard.server.service.install.DatabaseHelper.ADDITIONAL_INFO; |
44 | import static org.thingsboard.server.service.install.DatabaseHelper.ASSIGNED_CUSTOMERS; | 47 | import static org.thingsboard.server.service.install.DatabaseHelper.ASSIGNED_CUSTOMERS; |
@@ -88,6 +91,9 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService | @@ -88,6 +91,9 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService | ||
88 | private TenantService tenantService; | 91 | private TenantService tenantService; |
89 | 92 | ||
90 | @Autowired | 93 | @Autowired |
94 | + private DeviceService deviceService; | ||
95 | + | ||
96 | + @Autowired | ||
91 | private DeviceProfileService deviceProfileService; | 97 | private DeviceProfileService deviceProfileService; |
92 | 98 | ||
93 | 99 | ||
@@ -348,7 +354,14 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService | @@ -348,7 +354,14 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService | ||
348 | do { | 354 | do { |
349 | pageData = tenantService.findTenants(pageLink); | 355 | pageData = tenantService.findTenants(pageLink); |
350 | for (Tenant tenant : pageData.getData()) { | 356 | for (Tenant tenant : pageData.getData()) { |
357 | + List<EntitySubtype> deviceTypes = deviceService.findDeviceTypesByTenantId(tenant.getId()).get(); | ||
351 | deviceProfileService.findOrCreateDefaultDeviceProfile(tenant.getId()); | 358 | deviceProfileService.findOrCreateDefaultDeviceProfile(tenant.getId()); |
359 | + for (EntitySubtype deviceType : deviceTypes) { | ||
360 | + try { | ||
361 | + deviceProfileService.createDeviceProfile(tenant.getId(), deviceType.getType()); | ||
362 | + } catch (Exception e) { | ||
363 | + } | ||
364 | + } | ||
352 | } | 365 | } |
353 | pageLink = pageLink.nextPageLink(); | 366 | pageLink = pageLink.nextPageLink(); |
354 | } while (pageData.hasNext()); | 367 | } while (pageData.hasNext()); |
@@ -326,7 +326,7 @@ public abstract class AbstractWebTest { | @@ -326,7 +326,7 @@ public abstract class AbstractWebTest { | ||
326 | deviceProfileData.setTransportConfiguration(transportConfiguration); | 326 | deviceProfileData.setTransportConfiguration(transportConfiguration); |
327 | deviceProfile.setProfileData(deviceProfileData); | 327 | deviceProfile.setProfileData(deviceProfileData); |
328 | deviceProfile.setDefault(false); | 328 | deviceProfile.setDefault(false); |
329 | - deviceProfile.setDefaultRuleChainId(new RuleChainId(Uuids.timeBased())); | 329 | + deviceProfile.setDefaultRuleChainId(null); |
330 | return deviceProfile; | 330 | return deviceProfile; |
331 | } | 331 | } |
332 | 332 |
@@ -28,7 +28,8 @@ import java.util.Arrays; | @@ -28,7 +28,8 @@ import java.util.Arrays; | ||
28 | @ClasspathSuite.ClassnameFilters({ | 28 | @ClasspathSuite.ClassnameFilters({ |
29 | // "org.thingsboard.server.controller.sql.WebsocketApiSqlTest", | 29 | // "org.thingsboard.server.controller.sql.WebsocketApiSqlTest", |
30 | // "org.thingsboard.server.controller.sql.EntityQueryControllerSqlTest", | 30 | // "org.thingsboard.server.controller.sql.EntityQueryControllerSqlTest", |
31 | - "org.thingsboard.server.controller.sql.*Test", | 31 | + "org.thingsboard.server.controller.sql.DeviceProfileControllerSqlTest", |
32 | +// "org.thingsboard.server.controller.sql.*Test", | ||
32 | }) | 33 | }) |
33 | public class ControllerSqlTestSuite { | 34 | public class ControllerSqlTestSuite { |
34 | 35 |
@@ -41,6 +41,8 @@ public interface DeviceProfileService { | @@ -41,6 +41,8 @@ public interface DeviceProfileService { | ||
41 | 41 | ||
42 | DeviceProfile createDefaultDeviceProfile(TenantId tenantId); | 42 | DeviceProfile createDefaultDeviceProfile(TenantId tenantId); |
43 | 43 | ||
44 | + DeviceProfile createDeviceProfile(TenantId tenantId, String profileName); | ||
45 | + | ||
44 | DeviceProfile findDefaultDeviceProfile(TenantId tenantId); | 46 | DeviceProfile findDefaultDeviceProfile(TenantId tenantId); |
45 | 47 | ||
46 | DeviceProfileInfo findDefaultDeviceProfileInfo(TenantId tenantId); | 48 | DeviceProfileInfo findDefaultDeviceProfileInfo(TenantId tenantId); |
@@ -165,11 +165,21 @@ public class DeviceProfileServiceImpl extends AbstractEntityService implements D | @@ -165,11 +165,21 @@ public class DeviceProfileServiceImpl extends AbstractEntityService implements D | ||
165 | @Override | 165 | @Override |
166 | public DeviceProfile createDefaultDeviceProfile(TenantId tenantId) { | 166 | public DeviceProfile createDefaultDeviceProfile(TenantId tenantId) { |
167 | log.trace("Executing createDefaultDeviceProfile tenantId [{}]", tenantId); | 167 | log.trace("Executing createDefaultDeviceProfile tenantId [{}]", tenantId); |
168 | + return doCreateDefaultDeviceProfile(tenantId, "Default", true); | ||
169 | + } | ||
170 | + | ||
171 | + @Override | ||
172 | + public DeviceProfile createDeviceProfile(TenantId tenantId, String profileName) { | ||
173 | + log.trace("Executing createDefaultDeviceProfile tenantId [{}], profileName [{}]", tenantId, profileName); | ||
174 | + return doCreateDefaultDeviceProfile(tenantId, profileName, false); | ||
175 | + } | ||
176 | + | ||
177 | + private DeviceProfile doCreateDefaultDeviceProfile(TenantId tenantId, String profileName, boolean defaultProfile) { | ||
168 | validateId(tenantId, INCORRECT_TENANT_ID + tenantId); | 178 | validateId(tenantId, INCORRECT_TENANT_ID + tenantId); |
169 | DeviceProfile deviceProfile = new DeviceProfile(); | 179 | DeviceProfile deviceProfile = new DeviceProfile(); |
170 | deviceProfile.setTenantId(tenantId); | 180 | deviceProfile.setTenantId(tenantId); |
171 | - deviceProfile.setDefault(true); | ||
172 | - deviceProfile.setName("Default"); | 181 | + deviceProfile.setDefault(defaultProfile); |
182 | + deviceProfile.setName(profileName); | ||
173 | deviceProfile.setType(DeviceProfileType.DEFAULT); | 183 | deviceProfile.setType(DeviceProfileType.DEFAULT); |
174 | deviceProfile.setTransportType(DeviceTransportType.DEFAULT); | 184 | deviceProfile.setTransportType(DeviceTransportType.DEFAULT); |
175 | deviceProfile.setDescription("Default device profile"); | 185 | deviceProfile.setDescription("Default device profile"); |
@@ -18,6 +18,7 @@ package org.thingsboard.server.dao.rule; | @@ -18,6 +18,7 @@ package org.thingsboard.server.dao.rule; | ||
18 | import com.google.common.util.concurrent.ListenableFuture; | 18 | import com.google.common.util.concurrent.ListenableFuture; |
19 | import lombok.extern.slf4j.Slf4j; | 19 | import lombok.extern.slf4j.Slf4j; |
20 | import org.apache.commons.lang3.StringUtils; | 20 | import org.apache.commons.lang3.StringUtils; |
21 | +import org.hibernate.exception.ConstraintViolationException; | ||
21 | import org.springframework.beans.factory.annotation.Autowired; | 22 | import org.springframework.beans.factory.annotation.Autowired; |
22 | import org.springframework.stereotype.Service; | 23 | import org.springframework.stereotype.Service; |
23 | import org.thingsboard.server.common.data.BaseData; | 24 | import org.thingsboard.server.common.data.BaseData; |
@@ -358,12 +359,21 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC | @@ -358,12 +359,21 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC | ||
358 | } | 359 | } |
359 | 360 | ||
360 | private void checkRuleNodesAndDelete(TenantId tenantId, RuleChainId ruleChainId) { | 361 | private void checkRuleNodesAndDelete(TenantId tenantId, RuleChainId ruleChainId) { |
362 | + try{ | ||
363 | + ruleChainDao.removeById(tenantId, ruleChainId.getId()); | ||
364 | + } catch (Exception t) { | ||
365 | + ConstraintViolationException e = extractConstraintViolationException(t).orElse(null); | ||
366 | + if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("fk_default_rule_chain_device_profile")) { | ||
367 | + throw new DataValidationException("The rule chain referenced by the device profiles cannot be deleted!"); | ||
368 | + } else { | ||
369 | + throw t; | ||
370 | + } | ||
371 | + } | ||
361 | List<EntityRelation> nodeRelations = getRuleChainToNodeRelations(tenantId, ruleChainId); | 372 | List<EntityRelation> nodeRelations = getRuleChainToNodeRelations(tenantId, ruleChainId); |
362 | for (EntityRelation relation : nodeRelations) { | 373 | for (EntityRelation relation : nodeRelations) { |
363 | deleteRuleNode(tenantId, relation.getTo()); | 374 | deleteRuleNode(tenantId, relation.getTo()); |
364 | } | 375 | } |
365 | deleteEntityRelations(tenantId, ruleChainId); | 376 | deleteEntityRelations(tenantId, ruleChainId); |
366 | - ruleChainDao.removeById(tenantId, ruleChainId.getId()); | ||
367 | } | 377 | } |
368 | 378 | ||
369 | private List<EntityRelation> getRuleChainToNodeRelations(TenantId tenantId, RuleChainId ruleChainId) { | 379 | private List<EntityRelation> getRuleChainToNodeRelations(TenantId tenantId, RuleChainId ruleChainId) { |
@@ -121,6 +121,30 @@ CREATE TABLE IF NOT EXISTS dashboard ( | @@ -121,6 +121,30 @@ CREATE TABLE IF NOT EXISTS dashboard ( | ||
121 | title varchar(255) | 121 | title varchar(255) |
122 | ); | 122 | ); |
123 | 123 | ||
124 | +CREATE TABLE IF NOT EXISTS rule_chain ( | ||
125 | + id uuid NOT NULL CONSTRAINT rule_chain_pkey PRIMARY KEY, | ||
126 | + created_time bigint NOT NULL, | ||
127 | + additional_info varchar, | ||
128 | + configuration varchar(10000000), | ||
129 | + name varchar(255), | ||
130 | + first_rule_node_id uuid, | ||
131 | + root boolean, | ||
132 | + debug_mode boolean, | ||
133 | + search_text varchar(255), | ||
134 | + tenant_id uuid | ||
135 | +); | ||
136 | + | ||
137 | +CREATE TABLE IF NOT EXISTS rule_node ( | ||
138 | + id uuid NOT NULL CONSTRAINT rule_node_pkey PRIMARY KEY, | ||
139 | + created_time bigint NOT NULL, | ||
140 | + rule_chain_id uuid, | ||
141 | + additional_info varchar, | ||
142 | + configuration varchar(10000000), | ||
143 | + type varchar(255), | ||
144 | + name varchar(255), | ||
145 | + debug_mode boolean, | ||
146 | + search_text varchar(255) | ||
147 | +); | ||
124 | 148 | ||
125 | CREATE TABLE IF NOT EXISTS device_profile ( | 149 | CREATE TABLE IF NOT EXISTS device_profile ( |
126 | id uuid NOT NULL CONSTRAINT device_profile_pkey PRIMARY KEY, | 150 | id uuid NOT NULL CONSTRAINT device_profile_pkey PRIMARY KEY, |
@@ -134,7 +158,8 @@ CREATE TABLE IF NOT EXISTS device_profile ( | @@ -134,7 +158,8 @@ CREATE TABLE IF NOT EXISTS device_profile ( | ||
134 | is_default boolean, | 158 | is_default boolean, |
135 | tenant_id uuid, | 159 | tenant_id uuid, |
136 | default_rule_chain_id uuid, | 160 | default_rule_chain_id uuid, |
137 | - CONSTRAINT device_profile_name_unq_key UNIQUE (tenant_id, name) | 161 | + CONSTRAINT device_profile_name_unq_key UNIQUE (tenant_id, name), |
162 | + CONSTRAINT fk_default_rule_chain_device_profile FOREIGN KEY (default_rule_chain_id) REFERENCES rule_chain(id) | ||
138 | ); | 163 | ); |
139 | 164 | ||
140 | CREATE TABLE IF NOT EXISTS device ( | 165 | CREATE TABLE IF NOT EXISTS device ( |
@@ -262,31 +287,6 @@ CREATE TABLE IF NOT EXISTS widgets_bundle ( | @@ -262,31 +287,6 @@ CREATE TABLE IF NOT EXISTS widgets_bundle ( | ||
262 | title varchar(255) | 287 | title varchar(255) |
263 | ); | 288 | ); |
264 | 289 | ||
265 | -CREATE TABLE IF NOT EXISTS rule_chain ( | ||
266 | - id uuid NOT NULL CONSTRAINT rule_chain_pkey PRIMARY KEY, | ||
267 | - created_time bigint NOT NULL, | ||
268 | - additional_info varchar, | ||
269 | - configuration varchar(10000000), | ||
270 | - name varchar(255), | ||
271 | - first_rule_node_id uuid, | ||
272 | - root boolean, | ||
273 | - debug_mode boolean, | ||
274 | - search_text varchar(255), | ||
275 | - tenant_id uuid | ||
276 | -); | ||
277 | - | ||
278 | -CREATE TABLE IF NOT EXISTS rule_node ( | ||
279 | - id uuid NOT NULL CONSTRAINT rule_node_pkey PRIMARY KEY, | ||
280 | - created_time bigint NOT NULL, | ||
281 | - rule_chain_id uuid, | ||
282 | - additional_info varchar, | ||
283 | - configuration varchar(10000000), | ||
284 | - type varchar(255), | ||
285 | - name varchar(255), | ||
286 | - debug_mode boolean, | ||
287 | - search_text varchar(255) | ||
288 | -); | ||
289 | - | ||
290 | CREATE TABLE IF NOT EXISTS entity_view ( | 290 | CREATE TABLE IF NOT EXISTS entity_view ( |
291 | id uuid NOT NULL CONSTRAINT entity_view_pkey PRIMARY KEY, | 291 | id uuid NOT NULL CONSTRAINT entity_view_pkey PRIMARY KEY, |
292 | created_time bigint NOT NULL, | 292 | created_time bigint NOT NULL, |
@@ -139,6 +139,31 @@ CREATE TABLE IF NOT EXISTS dashboard ( | @@ -139,6 +139,31 @@ CREATE TABLE IF NOT EXISTS dashboard ( | ||
139 | title varchar(255) | 139 | title varchar(255) |
140 | ); | 140 | ); |
141 | 141 | ||
142 | +CREATE TABLE IF NOT EXISTS rule_chain ( | ||
143 | + id uuid NOT NULL CONSTRAINT rule_chain_pkey PRIMARY KEY, | ||
144 | + created_time bigint NOT NULL, | ||
145 | + additional_info varchar, | ||
146 | + configuration varchar(10000000), | ||
147 | + name varchar(255), | ||
148 | + first_rule_node_id uuid, | ||
149 | + root boolean, | ||
150 | + debug_mode boolean, | ||
151 | + search_text varchar(255), | ||
152 | + tenant_id uuid | ||
153 | +); | ||
154 | + | ||
155 | +CREATE TABLE IF NOT EXISTS rule_node ( | ||
156 | + id uuid NOT NULL CONSTRAINT rule_node_pkey PRIMARY KEY, | ||
157 | + created_time bigint NOT NULL, | ||
158 | + rule_chain_id uuid, | ||
159 | + additional_info varchar, | ||
160 | + configuration varchar(10000000), | ||
161 | + type varchar(255), | ||
162 | + name varchar(255), | ||
163 | + debug_mode boolean, | ||
164 | + search_text varchar(255) | ||
165 | +); | ||
166 | + | ||
142 | CREATE TABLE IF NOT EXISTS device_profile ( | 167 | CREATE TABLE IF NOT EXISTS device_profile ( |
143 | id uuid NOT NULL CONSTRAINT device_profile_pkey PRIMARY KEY, | 168 | id uuid NOT NULL CONSTRAINT device_profile_pkey PRIMARY KEY, |
144 | created_time bigint NOT NULL, | 169 | created_time bigint NOT NULL, |
@@ -151,7 +176,8 @@ CREATE TABLE IF NOT EXISTS device_profile ( | @@ -151,7 +176,8 @@ CREATE TABLE IF NOT EXISTS device_profile ( | ||
151 | is_default boolean, | 176 | is_default boolean, |
152 | tenant_id uuid, | 177 | tenant_id uuid, |
153 | default_rule_chain_id uuid, | 178 | default_rule_chain_id uuid, |
154 | - CONSTRAINT device_profile_name_unq_key UNIQUE (tenant_id, name) | 179 | + CONSTRAINT device_profile_name_unq_key UNIQUE (tenant_id, name), |
180 | + CONSTRAINT fk_default_rule_chain_device_profile FOREIGN KEY (default_rule_chain_id) REFERENCES rule_chain(id) | ||
155 | ); | 181 | ); |
156 | 182 | ||
157 | CREATE TABLE IF NOT EXISTS device ( | 183 | CREATE TABLE IF NOT EXISTS device ( |
@@ -286,31 +312,6 @@ CREATE TABLE IF NOT EXISTS widgets_bundle ( | @@ -286,31 +312,6 @@ CREATE TABLE IF NOT EXISTS widgets_bundle ( | ||
286 | title varchar(255) | 312 | title varchar(255) |
287 | ); | 313 | ); |
288 | 314 | ||
289 | -CREATE TABLE IF NOT EXISTS rule_chain ( | ||
290 | - id uuid NOT NULL CONSTRAINT rule_chain_pkey PRIMARY KEY, | ||
291 | - created_time bigint NOT NULL, | ||
292 | - additional_info varchar, | ||
293 | - configuration varchar(10000000), | ||
294 | - name varchar(255), | ||
295 | - first_rule_node_id uuid, | ||
296 | - root boolean, | ||
297 | - debug_mode boolean, | ||
298 | - search_text varchar(255), | ||
299 | - tenant_id uuid | ||
300 | -); | ||
301 | - | ||
302 | -CREATE TABLE IF NOT EXISTS rule_node ( | ||
303 | - id uuid NOT NULL CONSTRAINT rule_node_pkey PRIMARY KEY, | ||
304 | - created_time bigint NOT NULL, | ||
305 | - rule_chain_id uuid, | ||
306 | - additional_info varchar, | ||
307 | - configuration varchar(10000000), | ||
308 | - type varchar(255), | ||
309 | - name varchar(255), | ||
310 | - debug_mode boolean, | ||
311 | - search_text varchar(255) | ||
312 | -); | ||
313 | - | ||
314 | CREATE TABLE IF NOT EXISTS entity_view ( | 315 | CREATE TABLE IF NOT EXISTS entity_view ( |
315 | id uuid NOT NULL CONSTRAINT entity_view_pkey PRIMARY KEY, | 316 | id uuid NOT NULL CONSTRAINT entity_view_pkey PRIMARY KEY, |
316 | created_time bigint NOT NULL, | 317 | created_time bigint NOT NULL, |
@@ -41,6 +41,7 @@ import org.thingsboard.server.common.data.id.HasId; | @@ -41,6 +41,7 @@ import org.thingsboard.server.common.data.id.HasId; | ||
41 | import org.thingsboard.server.common.data.id.RuleChainId; | 41 | import org.thingsboard.server.common.data.id.RuleChainId; |
42 | import org.thingsboard.server.common.data.id.TenantId; | 42 | import org.thingsboard.server.common.data.id.TenantId; |
43 | import org.thingsboard.server.common.data.id.UUIDBased; | 43 | import org.thingsboard.server.common.data.id.UUIDBased; |
44 | +import org.thingsboard.server.common.data.rule.RuleChain; | ||
44 | import org.thingsboard.server.dao.alarm.AlarmService; | 45 | import org.thingsboard.server.dao.alarm.AlarmService; |
45 | import org.thingsboard.server.dao.asset.AssetService; | 46 | import org.thingsboard.server.dao.asset.AssetService; |
46 | import org.thingsboard.server.dao.audit.AuditLogLevelFilter; | 47 | import org.thingsboard.server.dao.audit.AuditLogLevelFilter; |
@@ -208,7 +209,7 @@ public abstract class AbstractServiceTest { | @@ -208,7 +209,7 @@ public abstract class AbstractServiceTest { | ||
208 | deviceProfileData.setTransportConfiguration(transportConfiguration); | 209 | deviceProfileData.setTransportConfiguration(transportConfiguration); |
209 | deviceProfile.setProfileData(deviceProfileData); | 210 | deviceProfile.setProfileData(deviceProfileData); |
210 | deviceProfile.setDefault(false); | 211 | deviceProfile.setDefault(false); |
211 | - deviceProfile.setDefaultRuleChainId(new RuleChainId(Uuids.timeBased())); | 212 | + deviceProfile.setDefaultRuleChainId(null); |
212 | return deviceProfile; | 213 | return deviceProfile; |
213 | } | 214 | } |
214 | 215 |
@@ -18,9 +18,9 @@ DROP TABLE IF EXISTS ts_kv_latest; | @@ -18,9 +18,9 @@ DROP TABLE IF EXISTS ts_kv_latest; | ||
18 | DROP TABLE IF EXISTS user_credentials; | 18 | DROP TABLE IF EXISTS user_credentials; |
19 | DROP TABLE IF EXISTS widget_type; | 19 | DROP TABLE IF EXISTS widget_type; |
20 | DROP TABLE IF EXISTS widgets_bundle; | 20 | DROP TABLE IF EXISTS widgets_bundle; |
21 | -DROP TABLE IF EXISTS rule_node; | ||
22 | -DROP TABLE IF EXISTS rule_chain; | ||
23 | DROP TABLE IF EXISTS entity_view; | 21 | DROP TABLE IF EXISTS entity_view; |
24 | DROP TABLE IF EXISTS device_profile; | 22 | DROP TABLE IF EXISTS device_profile; |
25 | DROP TABLE IF EXISTS tenant_profile; | 23 | DROP TABLE IF EXISTS tenant_profile; |
24 | +DROP TABLE IF EXISTS rule_node; | ||
25 | +DROP TABLE IF EXISTS rule_chain; | ||
26 | DROP FUNCTION IF EXISTS to_uuid; | 26 | DROP FUNCTION IF EXISTS to_uuid; |
@@ -18,9 +18,9 @@ DROP TABLE IF EXISTS ts_kv_dictionary; | @@ -18,9 +18,9 @@ DROP TABLE IF EXISTS ts_kv_dictionary; | ||
18 | DROP TABLE IF EXISTS user_credentials; | 18 | DROP TABLE IF EXISTS user_credentials; |
19 | DROP TABLE IF EXISTS widget_type; | 19 | DROP TABLE IF EXISTS widget_type; |
20 | DROP TABLE IF EXISTS widgets_bundle; | 20 | DROP TABLE IF EXISTS widgets_bundle; |
21 | -DROP TABLE IF EXISTS rule_node; | ||
22 | -DROP TABLE IF EXISTS rule_chain; | ||
23 | DROP TABLE IF EXISTS entity_view; | 21 | DROP TABLE IF EXISTS entity_view; |
24 | DROP TABLE IF EXISTS device_profile; | 22 | DROP TABLE IF EXISTS device_profile; |
25 | DROP TABLE IF EXISTS tenant_profile; | 23 | DROP TABLE IF EXISTS tenant_profile; |
24 | +DROP TABLE IF EXISTS rule_node; | ||
25 | +DROP TABLE IF EXISTS rule_chain; | ||
26 | DROP TABLE IF EXISTS tb_schema_settings; | 26 | DROP TABLE IF EXISTS tb_schema_settings; |