From ea86f9748549fbd7c4f67c652defd25ef8c68f77 Mon Sep 17 00:00:00 2001 From: TonCherAmi Date: Tue, 17 May 2022 13:23:52 +0300 Subject: [PATCH] Add support for multiple instances of LiquibaseParams (#73) --- .../spring/jpa/liquibase/LiquibaseStart.kt | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/common-spring-jpa/src/main/kotlin/ru/touchin/common/spring/jpa/liquibase/LiquibaseStart.kt b/common-spring-jpa/src/main/kotlin/ru/touchin/common/spring/jpa/liquibase/LiquibaseStart.kt index f4fbda1..cdbd636 100644 --- a/common-spring-jpa/src/main/kotlin/ru/touchin/common/spring/jpa/liquibase/LiquibaseStart.kt +++ b/common-spring-jpa/src/main/kotlin/ru/touchin/common/spring/jpa/liquibase/LiquibaseStart.kt @@ -16,21 +16,25 @@ import javax.sql.DataSource @Component class LiquibaseStart( private val dataSource: DataSource, - private val liquibaseParams: LiquibaseParams, + private val liquibaseParams: List, ) { @RunOnceOnStartup fun runLiquibase() { - dataSource.connection.use { connection -> - val database: Database = DatabaseFactory.getInstance() - .findCorrectDatabaseImplementation(JdbcConnection(connection)) - .apply { defaultSchemaName = liquibaseParams.schema } + liquibaseParams.forEach { params -> + dataSource.connection.use { connection -> + val database: Database = DatabaseFactory.getInstance() + .findCorrectDatabaseImplementation(JdbcConnection(connection)) + .apply { + defaultSchemaName = params.schema + } - val resourceAccessor = SpringResourceAccessor(DefaultResourceLoader()) + val resourceAccessor = SpringResourceAccessor(DefaultResourceLoader()) - val liquibase = Liquibase(liquibaseParams.changeLogPath, resourceAccessor, database) + val liquibase = Liquibase(params.changeLogPath, resourceAccessor, database) - liquibase.update(Contexts()) + liquibase.update(Contexts()) + } } }