diff --git a/pom.xml b/pom.xml
index af84c84..e11e72d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -52,6 +52,7 @@
org.projectlombok
lombok
+ 1.18.36
false
diff --git a/src/main/java/com/db/piramalswasthya/config/FlywayConfig.java b/src/main/java/com/db/piramalswasthya/config/FlywayConfig.java
index b68fb4b..c9736be 100644
--- a/src/main/java/com/db/piramalswasthya/config/FlywayConfig.java
+++ b/src/main/java/com/db/piramalswasthya/config/FlywayConfig.java
@@ -3,46 +3,54 @@
import javax.sql.DataSource;
import org.flywaydb.core.Flyway;
+import org.flywaydb.core.api.configuration.FluentConfiguration;
import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FlywayConfig {
- @Bean
- public Flyway flywayDbiemr(@Qualifier("dbiemrDataSource") DataSource dataSource) {
- return Flyway.configure()
- .dataSource(dataSource)
- .locations("classpath:db/migration/dbiemr")
- .baselineOnMigrate(true)
- .load();
- }
-
- @Bean
- public Flyway flywayDbidentity(@Qualifier("dbidentityDataSource") DataSource dataSource) {
- return Flyway.configure()
- .dataSource(dataSource)
- .locations("classpath:db/migration/dbidentity")
- .baselineOnMigrate(true)
- .load();
- }
-
- @Bean
- public Flyway flywayDbreporting(@Qualifier("dbreportingDataSource") DataSource dataSource) {
- return Flyway.configure()
- .dataSource(dataSource)
- .locations("classpath:db/migration/dbreporting")
- .baselineOnMigrate(true)
- .load();
- }
-
- @Bean
- public Flyway flywayDb1097identity(@Qualifier("db1097identityDataSource") DataSource dataSource) {
- return Flyway.configure()
- .dataSource(dataSource)
- .locations("classpath:db/migration/db1097identity")
- .baselineOnMigrate(true)
- .load();
- }
+ @Value("${amrit.flyway.ignore-applied-migration-checksum:false}")
+ private boolean ignoreAppliedMigrationChecksum;
+
+ /**
+ * Helper method to create a Flyway instance with centralized configuration.
+ * Updated to use valid ignoreMigrationPatterns status.
+ */
+ private Flyway createFlyway(DataSource dataSource, String location) {
+ FluentConfiguration configuration = Flyway.configure()
+ .dataSource(dataSource)
+ .locations(location)
+ .baselineOnMigrate(true);
+
+ if (ignoreAppliedMigrationChecksum) {
+ // Updated to use validateOnMigrate(false) which is supported in Community Edition
+ // This disables validation of applied migrations, allowing the app to start even if checksums change
+ configuration.validateOnMigrate(false);
+ }
+
+ return configuration.load();
+ }
+
+ @Bean
+ public Flyway flywayDbiemr(@Qualifier("dbiemrDataSource") DataSource dataSource) {
+ return createFlyway(dataSource, "classpath:db/migration/dbiemr");
+ }
+
+ @Bean
+ public Flyway flywayDbidentity(@Qualifier("dbidentityDataSource") DataSource dataSource) {
+ return createFlyway(dataSource, "classpath:db/migration/dbidentity");
+ }
+
+ @Bean
+ public Flyway flywayDbreporting(@Qualifier("dbreportingDataSource") DataSource dataSource) {
+ return createFlyway(dataSource, "classpath:db/migration/dbreporting");
+ }
+
+ @Bean
+ public Flyway flywayDb1097identity(@Qualifier("db1097identityDataSource") DataSource dataSource) {
+ return createFlyway(dataSource, "classpath:db/migration/db1097identity");
+ }
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 4f88a79..0089da4 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -48,3 +48,5 @@ spring.datasource.db1097identity.password=