From 5c57634d9c8b3e7cfc8c8a69e5ba46feaa406b71 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Fri, 29 Apr 2022 16:59:06 +0300 Subject: [PATCH] migration manual run ctrl RED-3800 --- .../v1/server/migration/Migration.java | 11 ++++---- .../server/migration/MigrationController.java | 28 +++++++++++++++++++ 2 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationController.java diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/Migration.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/Migration.java index 90ec3e2df..540bfbbf0 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/Migration.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/Migration.java @@ -1,13 +1,11 @@ package com.iqser.red.service.peristence.v1.server.migration; -import org.springframework.beans.factory.annotation.Autowired; - import com.iqser.red.service.persistence.management.v1.processor.service.persistence.MigrationPersistenceService; - import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; @Data @Slf4j @@ -21,11 +19,14 @@ public abstract class Migration { @Setter private MigrationPersistenceService migrationPersistenceService; - public void run() { + run(false); + } + + public void run(boolean force) { var latestProcessedVersion = migrationPersistenceService.getLatestProcessedVersion(); - if (!migrationPersistenceService.isProcessed(version, latestProcessedVersion)) { + if (!migrationPersistenceService.isProcessed(version, latestProcessedVersion) || force) { log.info("Starting migration with name {} and version {}", name, version); migrate(); migrationPersistenceService.insertMigration(name, version); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationController.java new file mode 100644 index 000000000..caef196df --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationController.java @@ -0,0 +1,28 @@ +package com.iqser.red.service.peristence.v1.server.migration; + + +import lombok.Data; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@Data +@RestController +@RequiredArgsConstructor +@RequestMapping("/private/migration") +public class MigrationController { + + private final List migrations; + + + @PostMapping + public void run(@RequestParam("migrationName") String migrationName, @RequestParam("force") boolean force) { + migrations.stream().filter(m -> m.getName().equalsIgnoreCase(migrationName) || m.getClass().getSimpleName().equalsIgnoreCase(migrationName)) + .forEach(m -> m.run(force)); + } + +}