From 0894d8c8387121e0897357941d3510f792013c0f Mon Sep 17 00:00:00 2001 From: Viacheslav Klimov Date: Fri, 19 Jun 2026 12:40:34 +0300 Subject: [PATCH] Run LTS schema and data migrations from the offline upgrade path --- .../service/install/SqlDatabaseUpgradeService.java | 12 ++++++++++-- .../install/update/DefaultDataUpdateService.java | 7 +++++-- 2 files changed, 15 insertions(+), 4 deletions(-) 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 3932aa9dcf..82efdd2cee 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 @@ -23,6 +23,7 @@ import org.springframework.jdbc.core.StatementCallback; import org.springframework.stereotype.Service; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.support.TransactionTemplate; +import org.thingsboard.server.service.install.lts.LtsMigrationService; import java.io.IOException; import java.io.UncheckedIOException; @@ -42,19 +43,26 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService private final InstallScripts installScripts; private final JdbcTemplate jdbcTemplate; private final TransactionTemplate transactionTemplate; + private final DatabaseSchemaSettingsService schemaSettingsService; + private final LtsMigrationService ltsMigrationService; - public SqlDatabaseUpgradeService(InstallScripts installScripts, JdbcTemplate jdbcTemplate, PlatformTransactionManager transactionManager) { + public SqlDatabaseUpgradeService(InstallScripts installScripts, JdbcTemplate jdbcTemplate, + PlatformTransactionManager transactionManager, + DatabaseSchemaSettingsService schemaSettingsService, + LtsMigrationService ltsMigrationService) { this.installScripts = installScripts; this.jdbcTemplate = jdbcTemplate; this.transactionTemplate = new TransactionTemplate(transactionManager); this.transactionTemplate.setTimeout((int) TimeUnit.MINUTES.toSeconds(120)); + this.schemaSettingsService = schemaSettingsService; + this.ltsMigrationService = ltsMigrationService; } @Override public void upgradeDatabase() { log.info("Updating schema..."); loadSql(getSchemaUpdateFile("basic")); - loadSql(getSchemaUpdateFile("lts")); + ltsMigrationService.runSchemaMigrations(schemaSettingsService.getDbSchemaVersion(), schemaSettingsService.getPackageSchemaVersion()); log.info("Schema updated."); } diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java b/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java index 6bdcb1b0a2..f542b92c1b 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java @@ -33,7 +33,9 @@ import org.thingsboard.server.common.data.query.FilterPredicateValue; import org.thingsboard.server.dao.rule.RuleChainService; import org.thingsboard.server.service.component.ComponentDiscoveryService; import org.thingsboard.server.service.component.RuleNodeClassInfo; +import org.thingsboard.server.service.install.DatabaseSchemaSettingsService; import org.thingsboard.server.service.install.DbUpgradeExecutorService; +import org.thingsboard.server.service.install.lts.LtsMigrationService; import org.thingsboard.server.utils.TbNodeUpgradeUtils; import java.util.ArrayList; @@ -52,12 +54,13 @@ public class DefaultDataUpdateService implements DataUpdateService { private final RuleChainService ruleChainService; private final ComponentDiscoveryService componentDiscoveryService; private final DbUpgradeExecutorService executorService; + private final DatabaseSchemaSettingsService schemaSettingsService; + private final LtsMigrationService ltsMigrationService; @Override public void updateData() throws Exception { log.info("Updating data ..."); - //TODO: should be cleaned after each release - + ltsMigrationService.runDataMigrations(schemaSettingsService.getDbSchemaVersion(), schemaSettingsService.getPackageSchemaVersion()); log.info("Data updated."); }