Commit 2086bd2d2a9d11f984bda6ba5c326aeb236ed6a5

Authored by ShvaykaD
Committed by Andrew Shvayka
1 parent ae010b78

fixed drop partition function in install script and added fix to upgrade script

... ... @@ -43,7 +43,7 @@ BEGIN
43 43 into max_customer_ttl;
44 44 max_ttl := GREATEST(system_ttl, max_customer_ttl, max_tenant_ttl);
45 45 if max_ttl IS NOT NULL AND max_ttl > 0 THEN
46   - date := to_timestamp(EXTRACT(EPOCH FROM current_timestamp) - (max_ttl / 1000));
  46 + date := to_timestamp(EXTRACT(EPOCH FROM current_timestamp) - max_ttl);
47 47 partition_by_max_ttl_date := get_partition_by_max_ttl_date(partition_type, date);
48 48 RAISE NOTICE 'Partition by max ttl: %', partition_by_max_ttl_date;
49 49 IF partition_by_max_ttl_date IS NOT NULL THEN
... ...
... ... @@ -193,6 +193,9 @@ public class ThingsboardInstallService {
193 193 databaseEntitiesUpgradeService.upgradeDatabase("3.2.1");
194 194 case "3.2.2":
195 195 log.info("Upgrading ThingsBoard from version 3.2.2 to 3.3.0 ...");
  196 + if (databaseTsUpgradeService != null) {
  197 + databaseTsUpgradeService.upgradeDatabase("3.2.2");
  198 + }
196 199 databaseEntitiesUpgradeService.upgradeDatabase("3.2.2");
197 200
198 201 dataUpdateService.updateData("3.2.2");
... ...
... ... @@ -209,6 +209,12 @@ public class PsqlTsDatabaseUpgradeService extends AbstractSqlTsDatabaseUpgradeSe
209 209 executeQuery(conn, "DROP FUNCTION IF EXISTS delete_customer_records_from_ts_kv(character varying, character varying, bigint);");
210 210 }
211 211 break;
  212 + case "3.2.2":
  213 + try (Connection conn = DriverManager.getConnection(dbUrl, dbUserName, dbPassword)) {
  214 + log.info("Load Drop Partitions functions ...");
  215 + loadSql(conn, LOAD_DROP_PARTITIONS_FUNCTIONS_SQL, "2.4.3");
  216 + }
  217 + break;
212 218 default:
213 219 throw new RuntimeException("Unable to upgrade SQL database, unsupported fromVersion: " + fromVersion);
214 220 }
... ...
... ... @@ -63,7 +63,7 @@ BEGIN
63 63 into max_customer_ttl;
64 64 max_ttl := GREATEST(system_ttl, max_customer_ttl, max_tenant_ttl);
65 65 if max_ttl IS NOT NULL AND max_ttl > 0 THEN
66   - date := to_timestamp(EXTRACT(EPOCH FROM current_timestamp) - (max_ttl / 1000));
  66 + date := to_timestamp(EXTRACT(EPOCH FROM current_timestamp) - max_ttl);
67 67 partition_by_max_ttl_date := get_partition_by_max_ttl_date(partition_type, date);
68 68 RAISE NOTICE 'Partition by max ttl: %', partition_by_max_ttl_date;
69 69 IF partition_by_max_ttl_date IS NOT NULL THEN
... ... @@ -104,11 +104,12 @@ BEGIN
104 104 END IF;
105 105 END IF;
106 106 END IF;
107   - END IF;
108   - IF partition_to_delete IS NOT NULL THEN
109   - RAISE NOTICE 'Partition to delete by max ttl: %', partition_to_delete;
110   - EXECUTE format('DROP TABLE %I', partition_to_delete);
111   - deleted := deleted + 1;
  107 + IF partition_to_delete IS NOT NULL THEN
  108 + RAISE NOTICE 'Partition to delete by max ttl: %', partition_to_delete;
  109 + EXECUTE format('DROP TABLE IF EXISTS %I', partition_to_delete);
  110 + partition_to_delete := NULL;
  111 + deleted := deleted + 1;
  112 + END IF;
112 113 END IF;
113 114 END LOOP;
114 115 END IF;
... ...