FINERACT-2099: Initial Liquibase got executed every execution

This commit is contained in:
Marta Jankovics
2024-07-03 18:09:13 +02:00
committed by Adam Saghy
parent f17a0965db
commit 112787cf07
4 changed files with 16 additions and 19 deletions
@@ -23,6 +23,7 @@ import java.util.Objects;
import javax.sql.DataSource;
import lombok.RequiredArgsConstructor;
import org.apache.fineract.infrastructure.core.service.database.DatabaseIndependentQueryService;
import org.apache.fineract.infrastructure.core.service.database.DatabaseTypeResolver;
import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Component;
@@ -40,10 +41,11 @@ public class TenantDatabaseStateVerifier {
private final LiquibaseProperties liquibaseProperties;
private final DatabaseIndependentQueryService dbQueryService;
private final DatabaseTypeResolver databaseTypeResolver;
public boolean isFirstLiquibaseMigration(DataSource dataSource) {
boolean databaseChangelogTableExists = dbQueryService.isTablePresent(dataSource, "DATABASECHANGELOG");
return !databaseChangelogTableExists;
String tableName = "DATABASECHANGELOG";
return !dbQueryService.isTablePresent(dataSource, databaseTypeResolver.isPostgreSQL() ? tableName.toLowerCase() : tableName);
}
public boolean isFlywayPresent(DataSource dataSource) {
@@ -70,8 +72,8 @@ public class TenantDatabaseStateVerifier {
NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
Integer result = jdbcTemplate.queryForObject(
"SELECT COUNT(script) FROM schema_version " + "WHERE version = :latestFlywayVersion "
+ "AND script = :latestFlywayScriptName " + "AND checksum = :latestFlywayScriptChecksum " + "AND success = 1",
"SELECT COUNT(script) FROM schema_version WHERE version = :latestFlywayVersion "
+ "AND script = :latestFlywayScriptName AND checksum = :latestFlywayScriptChecksum AND success = 1",
paramMap, Integer.class);
return Objects.equals(result, 1);
}
@@ -143,8 +143,8 @@ public class TestConfiguration {
@Bean
public TenantDatabaseStateVerifier tenantDatabaseStateVerifier(DatabaseIndependentQueryService databaseIndependentQueryService,
LiquibaseProperties liquibaseProperties) {
return new TenantDatabaseStateVerifier(liquibaseProperties, databaseIndependentQueryService);
LiquibaseProperties liquibaseProperties, DatabaseTypeResolver databaseTypeResolver) {
return new TenantDatabaseStateVerifier(liquibaseProperties, databaseIndependentQueryService, databaseTypeResolver);
}
/**