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)) { if ("cassandra-latest-to-postgres".equals(upgradeFromVersion)) {
log.info("Migrating ThingsBoard latest timeseries data from cassandra to SQL database ..."); log.info("Migrating ThingsBoard latest timeseries data from cassandra to SQL database ...");
latestMigrateService.migrate(); latestMigrateService.migrate();
} else if (upgradeFromVersion.equals("3.6.2-images")) {
installScripts.updateImages();
} else { } else {
databaseSchemaVersionService.validateSchemaSettings(); databaseSchemaVersionService.validateSchemaSettings();
//TODO DON'T FORGET to update SUPPORTED_VERSIONS_FROM in DatabaseSchemaVersionService, //TODO DON'T FORGET to update SUPPORTED_VERSIONS_FROM in DatabaseSchemaVersionService,
// this list should include last version and can include previous versions without upgrade // this list should include last version and can include previous versions without upgrade
String fromVersion = databaseSchemaVersionService.getDbSchemaVersion(); String fromVersion = databaseSchemaVersionService.getDbSchemaVersion();
String toVersion = databaseSchemaVersionService.getPackageSchemaVersion(); String toVersion = databaseSchemaVersionService.getPackageSchemaVersion();
cacheCleanupService.clearCache();
log.info("Upgrading ThingsBoard from version {} to {} ...", fromVersion, toVersion); log.info("Upgrading ThingsBoard from version {} to {} ...", fromVersion, toVersion);
cacheCleanupService.clearCache();
entityDatabaseSchemaService.createDatabaseSchema(false);
databaseEntitiesUpgradeService.upgradeDatabase(); databaseEntitiesUpgradeService.upgradeDatabase();
// dataUpdateService.updateData(); dataUpdateService.updateData(); //TODO: update data should be cleaned after each release
installScripts.updateResourcesUsage();
entityDatabaseSchemaService.createDatabaseSchema(false);
entityDatabaseSchemaService.createOrUpdateViewsAndFunctions(); entityDatabaseSchemaService.createOrUpdateViewsAndFunctions();
entityDatabaseSchemaService.createOrUpdateDeviceInfoView(persistToTelemetry); entityDatabaseSchemaService.createOrUpdateDeviceInfoView(persistToTelemetry);
entityDatabaseSchemaService.createDatabaseIndexes(); 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 lombok.extern.slf4j.Slf4j;
import org.springframework.boot.info.BuildProperties; import org.springframework.boot.info.BuildProperties;
import org.springframework.context.annotation.Profile; import org.springframework.context.annotation.Profile;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.thingsboard.server.service.install.update.DefaultDataUpdateService; import org.thingsboard.server.service.install.update.DefaultDataUpdateService;
@ -71,13 +70,8 @@ public class DefaultDatabaseSchemaSettingsService implements DatabaseSchemaSetti
@Deprecated(forRemoval = true, since = "3.9.0") @Deprecated(forRemoval = true, since = "3.9.0")
private void createProductIfNotExists() { private void createProductIfNotExists() {
boolean isCommunityEdition; boolean isCommunityEdition = jdbcTemplate.queryForList(
try { "SELECT 1 FROM information_schema.tables WHERE table_name = 'integration'", Integer.class).isEmpty();
jdbcTemplate.queryForObject("SELECT 1 FROM information_schema.tables WHERE table_name = 'integration'", Integer.class);
isCommunityEdition = false;
} catch (EmptyResultDataAccessException e) {
isCommunityEdition = true;
}
String product = isCommunityEdition ? "CE" : "PE"; String product = isCommunityEdition ? "CE" : "PE";
jdbcTemplate.execute("ALTER TABLE tb_schema_settings ADD COLUMN IF NOT EXISTS product varchar(2) DEFAULT '" + product + "'"); 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) { 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); 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.dao.sql.JpaExecutorService;
import org.thingsboard.server.service.component.ComponentDiscoveryService; import org.thingsboard.server.service.component.ComponentDiscoveryService;
import org.thingsboard.server.service.component.RuleNodeClassInfo; import org.thingsboard.server.service.component.RuleNodeClassInfo;
import org.thingsboard.server.service.install.InstallScripts;
import org.thingsboard.server.utils.TbNodeUpgradeUtils; import org.thingsboard.server.utils.TbNodeUpgradeUtils;
import java.util.ArrayList; import java.util.ArrayList;
@ -57,9 +58,14 @@ public class DefaultDataUpdateService implements DataUpdateService {
@Autowired @Autowired
JpaExecutorService jpaExecutorService; JpaExecutorService jpaExecutorService;
@Autowired
private InstallScripts installScripts;
@Override @Override
public void updateData() throws Exception { public void updateData() throws Exception {
log.info("Updating data ..."); log.info("Updating data ...");
//TODO: should be cleaned after each release
installScripts.updateResourcesUsage();
log.info("Data updated."); log.info("Data updated.");
} }

Loading…
Cancel
Save