Browse Source

refactoring due to comments

pull/12133/head
YevhenBondarenko 2 years ago
parent
commit
05f0fc1142
  1. 9
      application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java
  2. 12
      application/src/main/java/org/thingsboard/server/service/install/DefaultDatabaseSchemaSettingsService.java
  3. 6
      application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java

9
application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java

@ -99,21 +99,18 @@ public class ThingsboardInstallService {
if ("cassandra-latest-to-postgres".equals(upgradeFromVersion)) {
log.info("Migrating ThingsBoard latest timeseries data from cassandra to SQL database ...");
latestMigrateService.migrate();
} else if (upgradeFromVersion.equals("3.6.2-images")) {
installScripts.updateImages();
} else {
databaseSchemaVersionService.validateSchemaSettings();
//TODO DON'T FORGET to update SUPPORTED_VERSIONS_FROM in DatabaseSchemaVersionService,
// this list should include last version and can include previous versions without upgrade
String fromVersion = databaseSchemaVersionService.getDbSchemaVersion();
String toVersion = databaseSchemaVersionService.getPackageSchemaVersion();
cacheCleanupService.clearCache();
log.info("Upgrading ThingsBoard from version {} to {} ...", fromVersion, toVersion);
cacheCleanupService.clearCache();
entityDatabaseSchemaService.createDatabaseSchema(false);
databaseEntitiesUpgradeService.upgradeDatabase();
// dataUpdateService.updateData();
installScripts.updateResourcesUsage();
dataUpdateService.updateData(); //TODO: update data should be cleaned after each release
entityDatabaseSchemaService.createDatabaseSchema(false);
entityDatabaseSchemaService.createOrUpdateViewsAndFunctions();
entityDatabaseSchemaService.createOrUpdateDeviceInfoView(persistToTelemetry);
entityDatabaseSchemaService.createDatabaseIndexes();

12
application/src/main/java/org/thingsboard/server/service/install/DefaultDatabaseSchemaSettingsService.java

@ -19,7 +19,6 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.info.BuildProperties;
import org.springframework.context.annotation.Profile;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.thingsboard.server.service.install.update.DefaultDataUpdateService;
@ -71,13 +70,8 @@ public class DefaultDatabaseSchemaSettingsService implements DatabaseSchemaSetti
@Deprecated(forRemoval = true, since = "3.9.0")
private void createProductIfNotExists() {
boolean isCommunityEdition;
try {
jdbcTemplate.queryForObject("SELECT 1 FROM information_schema.tables WHERE table_name = 'integration'", Integer.class);
isCommunityEdition = false;
} catch (EmptyResultDataAccessException e) {
isCommunityEdition = true;
}
boolean isCommunityEdition = jdbcTemplate.queryForList(
"SELECT 1 FROM information_schema.tables WHERE table_name = 'integration'", Integer.class).isEmpty();
String product = isCommunityEdition ? "CE" : "PE";
jdbcTemplate.execute("ALTER TABLE tb_schema_settings ADD COLUMN IF NOT EXISTS product varchar(2) DEFAULT '" + product + "'");
}
@ -140,7 +134,7 @@ public class DefaultDatabaseSchemaSettingsService implements DatabaseSchemaSetti
}
private void onSchemaSettingsError(String message) {
Runtime.getRuntime().addShutdownHook(new Thread(() -> log.info(message)));
Runtime.getRuntime().addShutdownHook(new Thread(() -> log.error(message)));
throw new RuntimeException(message);
}
}

6
application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java

@ -34,6 +34,7 @@ import org.thingsboard.server.dao.rule.RuleChainService;
import org.thingsboard.server.dao.sql.JpaExecutorService;
import org.thingsboard.server.service.component.ComponentDiscoveryService;
import org.thingsboard.server.service.component.RuleNodeClassInfo;
import org.thingsboard.server.service.install.InstallScripts;
import org.thingsboard.server.utils.TbNodeUpgradeUtils;
import java.util.ArrayList;
@ -57,9 +58,14 @@ public class DefaultDataUpdateService implements DataUpdateService {
@Autowired
JpaExecutorService jpaExecutorService;
@Autowired
private InstallScripts installScripts;
@Override
public void updateData() throws Exception {
log.info("Updating data ...");
//TODO: should be cleaned after each release
installScripts.updateResourcesUsage();
log.info("Data updated.");
}

Loading…
Cancel
Save