From 54b82d050212c2f862ece30be5e95b9a075cba24 Mon Sep 17 00:00:00 2001 From: Sidhant Goel Date: Mon, 23 May 2022 15:21:32 +0530 Subject: [PATCH 1/2] Fix for running migrations before application start --- .../java/com/appsmith/server/configurations/MongoConfig.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/MongoConfig.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/MongoConfig.java index 62ea80d20f..769ac17ac5 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/MongoConfig.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/MongoConfig.java @@ -52,7 +52,7 @@ import java.util.List; ) public class MongoConfig { @Bean - public MongockSpring5.MongockApplicationRunner mongockApplicationRunner(ApplicationContext springContext, MongoTemplate mongoTemplate) { + public MongockSpring5.MongockInitializingBeanRunner mongockInitializingBeanRunner(ApplicationContext springContext, MongoTemplate mongoTemplate) { SpringDataMongoV3Driver springDataMongoV3Driver = SpringDataMongoV3Driver.withDefaultLock(mongoTemplate); springDataMongoV3Driver.setWriteConcern(WriteConcern.JOURNALED.withJournal(false)); springDataMongoV3Driver.setReadConcern(ReadConcern.LOCAL); @@ -62,7 +62,7 @@ public class MongoConfig { .addChangeLogsScanPackages(List.of("com.appsmith.server.migrations")) .setSpringContext(springContext) // any extra configuration you need - .buildApplicationRunner(); + .buildInitializingBeanRunner(); } @Bean From 8a50dea54d2cf232433ce8fbe22b182f7cebe004 Mon Sep 17 00:00:00 2001 From: Sidhant Goel Date: Mon, 23 May 2022 16:18:06 +0530 Subject: [PATCH 2/2] added comment --- .../com/appsmith/server/configurations/MongoConfig.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/MongoConfig.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/MongoConfig.java index 769ac17ac5..7c454f7d6b 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/MongoConfig.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/MongoConfig.java @@ -51,6 +51,13 @@ import java.util.List; repositoryBaseClass = BaseRepositoryImpl.class ) public class MongoConfig { + + /* + Changing this froom ApplicationRunner to InitializingBeanRunner + We are doing so because when one migration failed to run because API call executed before migration on old data + and made inconsistent for migration, having API calls run on unmigrated data is also a issue. + Link to documentation: https://docs.mongock.io/v5/runner/springboot/index.html + */ @Bean public MongockSpring5.MongockInitializingBeanRunner mongockInitializingBeanRunner(ApplicationContext springContext, MongoTemplate mongoTemplate) { SpringDataMongoV3Driver springDataMongoV3Driver = SpringDataMongoV3Driver.withDefaultLock(mongoTemplate);