Add support for multiple instances of LiquibaseParams (#73)

This commit is contained in:
TonCherAmi 2022-05-17 13:23:52 +03:00 committed by GitHub
parent 68f97ca05a
commit ea86f97485
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 8 deletions

View File

@ -16,21 +16,25 @@ import javax.sql.DataSource
@Component
class LiquibaseStart(
private val dataSource: DataSource,
private val liquibaseParams: LiquibaseParams,
private val liquibaseParams: List<LiquibaseParams>,
) {
@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())
}
}
}