From 8faa23ac631677d26aceea004443c013da6b7821 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Tue, 10 Feb 2026 13:24:54 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/BKI-3241#comment-72722 [db version] --- docker_compose/credit_tracker_config.env | 1 - docker_compose/docker-compose.yml | 10 ++++--- .../settings/CreditTrackerSettings.java | 1 - .../service/DbVersionValidationService.java | 26 ++++++++++++------- 4 files changed, 23 insertions(+), 15 deletions(-) diff --git a/docker_compose/credit_tracker_config.env b/docker_compose/credit_tracker_config.env index 8413838..12dc807 100644 --- a/docker_compose/credit_tracker_config.env +++ b/docker_compose/credit_tracker_config.env @@ -1,6 +1,5 @@ #commons APP_VERSION=2.0 -DB_VERSION=2.0 REGISTRY_URL=10.230.238.56:5000 JMX_MAIN_PORT=11001 JMX_MONITORING_PORT=11002 diff --git a/docker_compose/docker-compose.yml b/docker_compose/docker-compose.yml index 82ca800..6226551 100644 --- a/docker_compose/docker-compose.yml +++ b/docker_compose/docker-compose.yml @@ -6,6 +6,7 @@ services: volumes: - ${LOGS_DIR}:/opt/app/logs/app - ${JSON_LOGS_DIR}:/opt/app/logs/json + - shared_data:/opt/app/reports - ${REPORT_MAIN_DIR}:/opt/app/reports - ${ACCESS_LOGS_DIR}:/opt/app/logs/access ports: @@ -15,7 +16,6 @@ services: - XMX=4G - XMS=1G - TZ=Europe/Moscow - - DB_VERSION=${DB_VERSION} - APM_SERVICE_NAME=${APM_SERVICE_NAME}-${APP_JAR} - APM_SERVER_URLS=${APM_SERVER_URLS} - APM_ENVIRONMENT=${APM_ENVIRONMENT} @@ -93,7 +93,7 @@ services: container_name: credit-tracker-monitoring restart: always volumes: - - ${REPORT_MONITOR_DIR}:/opt/app/reports + - shared_data:/opt/app/reports - ${LOGS_DIR}:/opt/app/logs/app - ${JSON_LOGS_DIR}:/opt/app/logs/json environment: @@ -101,7 +101,6 @@ services: - TZ=Europe/Moscow - XMX=4G - XMS=1G - - DB_VERSION=${DB_VERSION} - APM_SERVICE_NAME=${APM_SERVICE_NAME}-${APP_JAR} - APM_SERVER_URLS=${APM_SERVER_URLS} - APM_ENVIRONMENT=${APM_ENVIRONMENT} @@ -146,4 +145,7 @@ services: - SIGNALS_TOKEN=${SIGNALS_TOKEN} - SIGNALS_USER=${SIGNALS_USER} - MONITORING_INTERVAL=${MONITORING_INTERVAL} - command: ["/opt/app/start-credit-tracker.sh"] \ No newline at end of file + command: ["/opt/app/start-credit-tracker.sh"] + +volumes: + shared_data: \ No newline at end of file diff --git a/src/main/java/ru/nbch/credit_tracker/config/settings/CreditTrackerSettings.java b/src/main/java/ru/nbch/credit_tracker/config/settings/CreditTrackerSettings.java index 06ca08b..320fb2f 100644 --- a/src/main/java/ru/nbch/credit_tracker/config/settings/CreditTrackerSettings.java +++ b/src/main/java/ru/nbch/credit_tracker/config/settings/CreditTrackerSettings.java @@ -37,6 +37,5 @@ public class CreditTrackerSettings { private Integer daysToUpdateFlags; private Long daysToUpdateFids; private String encoding; - private String dbVersion; private Integer saverSubjectBatchSize; } diff --git a/src/main/java/ru/nbch/credit_tracker/service/DbVersionValidationService.java b/src/main/java/ru/nbch/credit_tracker/service/DbVersionValidationService.java index f8cb14c..36b9cde 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/DbVersionValidationService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/DbVersionValidationService.java @@ -16,6 +16,7 @@ public class DbVersionValidationService implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); private final AppVersionMapper appVersionMapper; private final CreditTrackerSettings settings; + private final String expectedDbVersion = "2.21"; @Autowired public DbVersionValidationService(AppVersionMapper appVersionMapper, CreditTrackerSettings settings) { @@ -25,9 +26,10 @@ public class DbVersionValidationService implements InitializingBean { @Override public void afterPropertiesSet() throws Exception { - String expectedDbVersion = settings.getDbVersion(); - - if (StringUtils.isEmpty(expectedDbVersion)) { + String[] expectedVersions = expectedDbVersion.split("\\."); + String expectedMajor = expectedVersions[0]; + String expectedMinor = expectedVersions[1]; + if (StringUtils.isEmpty(expectedMajor) || StringUtils.isEmpty(expectedMinor)) { log.error("expected database version is not specified in the settings."); System.exit(1); } @@ -35,20 +37,26 @@ public class DbVersionValidationService implements InitializingBean { log.info("expected DB version: {}", expectedDbVersion); AppVersion appVersion = appVersionMapper.getAppVersion(); - if (appVersion == null || StringUtils.isEmpty(appVersion.getDbVersion())) { + String[] actualVersions = appVersion.getDbVersion().split("\\."); + String actualMajor = actualVersions[0]; + String actualMinor = actualVersions[1]; + if (StringUtils.isEmpty(actualMajor) || StringUtils.isEmpty(actualMinor)) { log.error("couldn't load version from APP_VERSION database table."); System.exit(1); } - String actualVersion = appVersion.getDbVersion(); + log.info("actual DB version: {}", appVersion.getDbVersion()); - log.info("actual DB version: {}", actualVersion); - - if (!expectedDbVersion.equals(actualVersion)) { + if (!expectedMajor.equals(actualMajor)) { log.error("expected database version does not match actual database version"); System.exit(1); } - log.info("Database version validation complete: {}", actualVersion); + if (Integer.parseInt(expectedMinor) < Integer.parseInt(actualMinor)) { + log.error("expected database version does not match actual database version"); + System.exit(1); + } + + log.info("Database version validation complete: {}", appVersion.getDbVersion()); } }