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=