From 40b02ff7ffc41a5c186905f04a3b923e31322f73 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 2 Jul 2019 10:52:17 +0300 Subject: [PATCH] Improve upgrade scripts. --- .../main/data/upgrade/2.4.0/schema_update.cql | 23 ------------------- .../main/data/upgrade/2.4.0/schema_update.sql | 2 -- .../CassandraDatabaseUpgradeService.java | 8 +++++-- .../install/SqlDatabaseUpgradeService.java | 3 +++ 4 files changed, 9 insertions(+), 27 deletions(-) delete mode 100644 application/src/main/data/upgrade/2.4.0/schema_update.cql diff --git a/application/src/main/data/upgrade/2.4.0/schema_update.cql b/application/src/main/data/upgrade/2.4.0/schema_update.cql deleted file mode 100644 index 3cf2308f7b..0000000000 --- a/application/src/main/data/upgrade/2.4.0/schema_update.cql +++ /dev/null @@ -1,23 +0,0 @@ --- --- Copyright © 2016-2019 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. --- - --- 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. --- - -ALTER TABLE thingsboard.device ADD label text; diff --git a/application/src/main/data/upgrade/2.4.0/schema_update.sql b/application/src/main/data/upgrade/2.4.0/schema_update.sql index fc3d6aeb8c..59785ae758 100644 --- a/application/src/main/data/upgrade/2.4.0/schema_update.sql +++ b/application/src/main/data/upgrade/2.4.0/schema_update.sql @@ -14,8 +14,6 @@ -- limitations under the License. -- -ALTER TABLE device ADD COLUMN label varchar(255); - CREATE INDEX IF NOT EXISTS idx_alarm_originator_alarm_type ON alarm(tenant_id, type, originator_type, originator_id); CREATE INDEX IF NOT EXISTS idx_event_type_entity_id ON event(tenant_id, event_type, entity_type, entity_id); diff --git a/application/src/main/java/org/thingsboard/server/service/install/CassandraDatabaseUpgradeService.java b/application/src/main/java/org/thingsboard/server/service/install/CassandraDatabaseUpgradeService.java index fd495fc4a2..c73c12e65f 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/CassandraDatabaseUpgradeService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/CassandraDatabaseUpgradeService.java @@ -16,6 +16,7 @@ package org.thingsboard.server.service.install; import com.datastax.driver.core.KeyspaceMetadata; +import com.datastax.driver.core.exceptions.InvalidQueryException; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -259,8 +260,11 @@ public class CassandraDatabaseUpgradeService implements DatabaseUpgradeService { break; case "2.3.1": log.info("Updating schema ..."); - schemaUpdateFile = Paths.get(installScripts.getDataDir(), "upgrade", "2.4.0", SCHEMA_UPDATE_CQL); - loadCql(schemaUpdateFile); + String updateDeviceTableStmt = "alter table device add label text"; + try { + cluster.getSession().execute(updateDeviceTableStmt); + Thread.sleep(2500); + } catch (InvalidQueryException e) {} log.info("Schema updated."); break; default: diff --git a/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java b/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java index 816852222f..d086e4be8b 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java @@ -170,6 +170,9 @@ public class SqlDatabaseUpgradeService implements DatabaseUpgradeService { log.info("Updating schema ..."); schemaUpdateFile = Paths.get(installScripts.getDataDir(), "upgrade", "2.4.0", SCHEMA_UPDATE_SQL); loadSql(schemaUpdateFile, conn); + try { + conn.createStatement().execute("ALTER TABLE device ADD COLUMN label varchar(255)"); //NOSONAR, ignoring because method used to execute thingsboard database upgrade script + } catch (Exception e) {} log.info("Schema updated."); } break;