Browse Source

Entity Data Query Upgrade Script

pull/3068/head
Andrii Shvaika 6 years ago
parent
commit
b7e1c039f3
  1. 2
      application/src/main/data/upgrade/3.0.1/schema_update_to_uuid.sql
  2. 14
      application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java

2
application/src/main/data/upgrade/3.0.1/schema_update_to_uuid.sql

@ -67,6 +67,7 @@ CREATE OR REPLACE PROCEDURE drop_all_idx()
$$ $$
BEGIN BEGIN
DROP INDEX IF EXISTS idx_alarm_originator_alarm_type; DROP INDEX IF EXISTS idx_alarm_originator_alarm_type;
DROP INDEX IF EXISTS idx_alarm_originator_alarm_time;
DROP INDEX IF EXISTS idx_event_type_entity_id; DROP INDEX IF EXISTS idx_event_type_entity_id;
DROP INDEX IF EXISTS idx_relation_to_id; DROP INDEX IF EXISTS idx_relation_to_id;
DROP INDEX IF EXISTS idx_relation_from_id; DROP INDEX IF EXISTS idx_relation_from_id;
@ -84,6 +85,7 @@ CREATE OR REPLACE PROCEDURE create_all_idx()
$$ $$
BEGIN BEGIN
CREATE INDEX IF NOT EXISTS idx_alarm_originator_alarm_type ON alarm(originator_id, type, start_ts DESC); CREATE INDEX IF NOT EXISTS idx_alarm_originator_alarm_type ON alarm(originator_id, type, start_ts DESC);
CREATE INDEX IF NOT EXISTS idx_alarm_originator_alarm_time ON alarm(originator_id, created_time DESC);
CREATE INDEX IF NOT EXISTS idx_event_type_entity_id ON event(tenant_id, event_type, entity_type, entity_id); CREATE INDEX IF NOT EXISTS idx_event_type_entity_id ON event(tenant_id, event_type, entity_type, entity_id);
CREATE INDEX IF NOT EXISTS idx_relation_to_id ON relation(relation_type_group, to_type, to_id); CREATE INDEX IF NOT EXISTS idx_relation_to_id ON relation(relation_type_group, to_type, to_id);
CREATE INDEX IF NOT EXISTS idx_relation_from_id ON relation(relation_type_group, from_type, from_id); CREATE INDEX IF NOT EXISTS idx_relation_from_id ON relation(relation_type_group, from_type, from_id);

14
application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java

@ -254,6 +254,14 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService
conn.createStatement().execute("call drop_all_idx()"); conn.createStatement().execute("call drop_all_idx()");
log.info("Updating alarm relations...");
conn.createStatement().execute("DELETE from relation WHERE relation_type_group = 'ALARM' AND relation_type <> 'ALARM_ANY';");
conn.createStatement().execute("UPDATE relation SET relation_type = 'ANY' WHERE relation_type_group = 'ALARM' AND relation_type = 'ALARM_ANY';");
log.info("Alarm relations updated.");
conn.createStatement().execute("VACUUM FULL relation");
for (String table : tables) { for (String table : tables) {
log.info("Updating table {}.", table); log.info("Updating table {}.", table);
Statement statement = conn.createStatement(); Statement statement = conn.createStatement();
@ -278,12 +286,6 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService
conn.createStatement().execute("DROP PROCEDURE create_all_idx"); conn.createStatement().execute("DROP PROCEDURE create_all_idx");
conn.createStatement().execute("DROP FUNCTION column_type_to_uuid"); conn.createStatement().execute("DROP FUNCTION column_type_to_uuid");
log.info("Updating alarm relations...");
conn.createStatement().execute("DELETE from relation WHERE relation_type_group = 'ALARM' AND relation_type <> 'ALARM_ANY';");
conn.createStatement().execute("UPDATE relation SET relation_type = 'ANY' WHERE relation_type_group = 'ALARM' AND relation_type = 'ALARM_ANY';");
log.info("Alarm relations updated.");
conn.createStatement().execute("UPDATE tb_schema_settings SET schema_version = 3001000;"); conn.createStatement().execute("UPDATE tb_schema_settings SET schema_version = 3001000;");
conn.createStatement().execute("VACUUM FULL"); conn.createStatement().execute("VACUUM FULL");

Loading…
Cancel
Save