diff --git a/application/src/main/java/org/thingsboard/server/service/install/CassandraAbstractDatabaseSchemaService.java b/application/src/main/java/org/thingsboard/server/service/install/CassandraAbstractDatabaseSchemaService.java index 3456a94859..d5b30e0873 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/CassandraAbstractDatabaseSchemaService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/CassandraAbstractDatabaseSchemaService.java @@ -45,10 +45,18 @@ public abstract class CassandraAbstractDatabaseSchemaService implements Database @Override public void createDatabaseSchema() throws Exception { + this.createDatabaseSchema(true); + } + + @Override + public void createDatabaseSchema(boolean createIndexes) throws Exception { log.info("Installing Cassandra DataBase schema part: " + schemaCql); Path schemaFile = Paths.get(installScripts.getDataDir(), CASSANDRA_DIR, schemaCql); loadCql(schemaFile); + } + @Override + public void createDatabaseIndexes() throws Exception { } private void loadCql(Path cql) throws Exception { diff --git a/application/src/main/java/org/thingsboard/server/service/install/DatabaseSchemaService.java b/application/src/main/java/org/thingsboard/server/service/install/DatabaseSchemaService.java index c120f833fa..6b67a4213d 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/DatabaseSchemaService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/DatabaseSchemaService.java @@ -19,4 +19,8 @@ public interface DatabaseSchemaService { void createDatabaseSchema() throws Exception; + void createDatabaseSchema(boolean createIndexes) throws Exception; + + void createDatabaseIndexes() throws Exception; + } diff --git a/application/src/main/java/org/thingsboard/server/service/install/SqlAbstractDatabaseSchemaService.java b/application/src/main/java/org/thingsboard/server/service/install/SqlAbstractDatabaseSchemaService.java index b8c0d964e1..97f0c655cc 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/SqlAbstractDatabaseSchemaService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/SqlAbstractDatabaseSchemaService.java @@ -53,6 +53,11 @@ public abstract class SqlAbstractDatabaseSchemaService implements DatabaseSchema @Override public void createDatabaseSchema() throws Exception { + this.createDatabaseSchema(true); + } + + @Override + public void createDatabaseSchema(boolean createIndexes) throws Exception { log.info("Installing SQL DataBase schema part: " + schemaSql); @@ -62,9 +67,15 @@ public abstract class SqlAbstractDatabaseSchemaService implements DatabaseSchema conn.createStatement().execute(sql); //NOSONAR, ignoring because method used to load initial thingsboard database schema } + if (createIndexes) { + this.createDatabaseIndexes(); + } + } + + @Override + public void createDatabaseIndexes() throws Exception { if (schemaIdxSql != null) { log.info("Installing SQL DataBase schema indexes part: " + schemaIdxSql); - Path schemaIdxFile = Paths.get(installScripts.getDataDir(), SQL_DIR, schemaIdxSql); try (Connection conn = DriverManager.getConnection(dbUrl, dbUserName, dbPassword)) { String sql = new String(Files.readAllBytes(schemaIdxFile), Charset.forName("UTF-8")); diff --git a/application/src/main/java/org/thingsboard/server/service/install/migrate/CassandraEntitiesToSqlMigrateService.java b/application/src/main/java/org/thingsboard/server/service/install/migrate/CassandraEntitiesToSqlMigrateService.java index e7f21a18d0..cf2e97a93c 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/migrate/CassandraEntitiesToSqlMigrateService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/migrate/CassandraEntitiesToSqlMigrateService.java @@ -66,7 +66,7 @@ public class CassandraEntitiesToSqlMigrateService implements EntitiesMigrateServ @Override public void migrate() throws Exception { log.info("Performing migration of entities data from cassandra to SQL database ..."); - entityDatabaseSchemaService.createDatabaseSchema(); + entityDatabaseSchemaService.createDatabaseSchema(false); try (Connection conn = DriverManager.getConnection(dbUrl, dbUserName, dbPassword)) { conn.setAutoCommit(false); for (CassandraToSqlTable table: tables) { @@ -76,6 +76,7 @@ public class CassandraEntitiesToSqlMigrateService implements EntitiesMigrateServ log.error("Unexpected error during ThingsBoard entities data migration!", e); throw e; } + entityDatabaseSchemaService.createDatabaseIndexes(); } private static List tables = Arrays.asList(