RED-4515: Fixed liquibase migration for tenants

This commit is contained in:
deiflaender 2023-03-29 15:09:51 +02:00
parent 794788d643
commit 12bf0d4eda
2 changed files with 19 additions and 1 deletions

View File

@ -52,7 +52,7 @@ public class TenantSpringLiquibaseExecutor implements InitializingBean, Resource
for (TenantEntity tenant : tenants) {
log.info("Initializing Liquibase for tenant " + tenant.getTenantId());
try (Connection connection = DriverManager.getConnection(JDBCUtils.buildJdbcUrl(tenant.getDatabaseConnection()),
try (Connection connection = DriverManager.getConnection(JDBCUtils.buildJdbcUrlWithSchema(tenant.getDatabaseConnection()),
tenant.getDatabaseConnection().getUsername(),
encryptionService.decrypt(tenant.getDatabaseConnection().getPassword()))) {
DataSource tenantDataSource = new SingleConnectionDataSource(connection, false);

View File

@ -61,4 +61,22 @@ public class JDBCUtils {
}
return sb.toString();
}
public String buildJdbcUrlWithSchema(DatabaseConnectionEntity databaseConnection){
StringBuilder sb = new StringBuilder("jdbc:")
.append(databaseConnection.getDriver())
.append("://")
.append(databaseConnection.getHost())
.append(':')
.append(databaseConnection.getPort())
.append('/')
.append(databaseConnection.getDatabase())
.append('?')
.append("currentSchema=")
.append(databaseConnection.getSchema());
if(databaseConnection.getParams() != null) {
databaseConnection.getParams().forEach((k, v) -> sb.append('&').append(k).append(v));
}
return sb.toString();
}
}