From 12bf0d4eda6f7af9e116f2da2c1046a1f469f68a Mon Sep 17 00:00:00 2001 From: deiflaender Date: Wed, 29 Mar 2023 15:09:51 +0200 Subject: [PATCH] RED-4515: Fixed liquibase migration for tenants --- .../TenantSpringLiquibaseExecutor.java | 2 +- .../v1/processor/utils/jdbc/JDBCUtils.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/multitenancy/persistence/TenantSpringLiquibaseExecutor.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/multitenancy/persistence/TenantSpringLiquibaseExecutor.java index 93cb27b9a..13cc2faef 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/multitenancy/persistence/TenantSpringLiquibaseExecutor.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/multitenancy/persistence/TenantSpringLiquibaseExecutor.java @@ -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); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/jdbc/JDBCUtils.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/jdbc/JDBCUtils.java index 28e969139..46c3b89fc 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/jdbc/JDBCUtils.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/jdbc/JDBCUtils.java @@ -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(); + } }