Hi all, I have isue with liquibase configuration, liquibase don't running at startup. I migrate spring boot from 2.1.11.RELEASE to 2.2.4.RELEASE and liquibase from 3.6.3 to 3.8.5.This is the configuration bean that i use, that nothing change since spring boot 2.1.11 :
@Bean
@Profile("!default")
public MultiTenantSpringLiquibase liquibase1(@Qualifier("taskExecutor") Executor executor, DataSource dataSource,
LiquibaseProperties liquibaseProperties, ApplicationProperties applicationProperties) {
MultiTenantSpringLiquibase multi = new MultiTenantSpringLiquibase();
multi.setSchemas(new ArrayList<>(applicationProperties.getMultitenant().keySet()));
multi.setDataSource(dataSource);
multi.setChangeLog("classpath:config/liquibase/master.xml");
multi.setContexts(liquibaseProperties.getContexts());
multi.setDefaultSchema(liquibaseProperties.getDefaultSchema());
multi.setLiquibaseSchema(liquibaseProperties.getLiquibaseSchema());
multi.setLiquibaseTablespace(liquibaseProperties.getLiquibaseTablespace());
multi.setDatabaseChangeLogLockTable(liquibaseProperties.getDatabaseChangeLogLockTable());
multi.setDatabaseChangeLogTable(liquibaseProperties.getDatabaseChangeLogTable());
multi.setDropFirst(liquibaseProperties.isDropFirst());
multi.setLabels(liquibaseProperties.getLabels());
multi.setRollbackFile(liquibaseProperties.getRollbackFile());
if (env.acceptsProfiles(Profiles.of(JHipsterConstants.SPRING_PROFILE_NO_LIQUIBASE))) {
multi.setShouldRun(false);
} else {
multi.setShouldRun(liquibaseProperties.isEnabled());
log.debug("Configuring Liquibase multitenant mode");
}
return multi;
}
i see only this in changelog :
2020-01-31 12:43:50.672 DEBUG 22940 --- [ restartedMain] f.i.m.config.LiquibaseConfiguration : Configuring Liquibase multitenant mode
2020-01-31 12:43:55.555 INFO 22940 --- [ restartedMain] f.i.mr.MrApp : Started MrApp in 131.318 seconds (JVM running for 132.276)
Liquibase is not running, i can't see anymore this line -> starting liquibase, liquibase has updated your database in XXX ms.
Did the configuration has change between spring 2.1 -> 2.2 ?
Comment From: wilkinsona
Thanks for the report. Unfortunately, I can't reproduce the behaviour you have described. A MultiTenantSpringLiquibase
bean has its afterPropertiesSet
method called and, as expected, it causes Liquibase to migrate the database:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.2.4.RELEASE)
2020-01-31 12:47:42.420 INFO 55461 --- [ main] com.example.demo.Gh19993Application : Starting Gh19993Application on Andys-MacBook-Pro.local with PID 55461 (/Users/awilkinson/dev/workspaces/spring-projects/spring-boot/master/gh-19993/target/classes started by awilkinson in /Users/awilkinson/dev/workspaces/spring-projects/spring-boot/master/gh-19993)
2020-01-31 12:47:42.422 INFO 55461 --- [ main] com.example.demo.Gh19993Application : No active profile set, falling back to default profiles: default
2020-01-31 12:47:42.854 INFO 55461 --- [ main] l.i.spring.MultiTenantSpringLiquibase : Schema based multitenancy enabled
2020-01-31 12:47:42.854 INFO 55461 --- [ main] l.i.spring.MultiTenantSpringLiquibase : Initializing Liquibase for schema
2020-01-31 12:47:42.857 INFO 55461 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2020-01-31 12:47:43.040 INFO 55461 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2020-01-31 12:47:43.654 INFO 55461 --- [ main] liquibase.executor.jvm.JdbcExecutor : SELECT COUNT(*) FROM PUBLIC.DATABASECHANGELOGLOCK
2020-01-31 12:47:43.664 INFO 55461 --- [ main] liquibase.executor.jvm.JdbcExecutor : CREATE TABLE PUBLIC.DATABASECHANGELOGLOCK (ID INT NOT NULL, LOCKED BOOLEAN NOT NULL, LOCKGRANTED TIMESTAMP, LOCKEDBY VARCHAR(255), CONSTRAINT PK_DATABASECHANGELOGLOCK PRIMARY KEY (ID))
2020-01-31 12:47:43.668 INFO 55461 --- [ main] liquibase.executor.jvm.JdbcExecutor : SELECT COUNT(*) FROM PUBLIC.DATABASECHANGELOGLOCK
2020-01-31 12:47:43.670 INFO 55461 --- [ main] liquibase.executor.jvm.JdbcExecutor : DELETE FROM PUBLIC.DATABASECHANGELOGLOCK
2020-01-31 12:47:43.671 INFO 55461 --- [ main] liquibase.executor.jvm.JdbcExecutor : INSERT INTO PUBLIC.DATABASECHANGELOGLOCK (ID, LOCKED) VALUES (1, FALSE)
2020-01-31 12:47:43.673 INFO 55461 --- [ main] liquibase.executor.jvm.JdbcExecutor : SELECT LOCKED FROM PUBLIC.DATABASECHANGELOGLOCK WHERE ID=1
2020-01-31 12:47:43.680 INFO 55461 --- [ main] l.lockservice.StandardLockService : Successfully acquired change log lock
2020-01-31 12:47:44.416 INFO 55461 --- [ main] l.c.StandardChangeLogHistoryService : Creating database history table with name: PUBLIC.DATABASECHANGELOG
2020-01-31 12:47:44.417 INFO 55461 --- [ main] liquibase.executor.jvm.JdbcExecutor : CREATE TABLE PUBLIC.DATABASECHANGELOG (ID VARCHAR(255) NOT NULL, AUTHOR VARCHAR(255) NOT NULL, FILENAME VARCHAR(255) NOT NULL, DATEEXECUTED TIMESTAMP NOT NULL, ORDEREXECUTED INT NOT NULL, EXECTYPE VARCHAR(10) NOT NULL, MD5SUM VARCHAR(35), DESCRIPTION VARCHAR(255), COMMENTS VARCHAR(255), TAG VARCHAR(255), LIQUIBASE VARCHAR(20), CONTEXTS VARCHAR(255), LABELS VARCHAR(255), DEPLOYMENT_ID VARCHAR(10))
2020-01-31 12:47:44.418 INFO 55461 --- [ main] liquibase.executor.jvm.JdbcExecutor : SELECT COUNT(*) FROM PUBLIC.DATABASECHANGELOG
2020-01-31 12:47:44.418 INFO 55461 --- [ main] l.c.StandardChangeLogHistoryService : Reading from PUBLIC.DATABASECHANGELOG
2020-01-31 12:47:44.419 INFO 55461 --- [ main] liquibase.executor.jvm.JdbcExecutor : SELECT * FROM PUBLIC.DATABASECHANGELOG ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
2020-01-31 12:47:44.419 INFO 55461 --- [ main] liquibase.executor.jvm.JdbcExecutor : SELECT COUNT(*) FROM PUBLIC.DATABASECHANGELOGLOCK
2020-01-31 12:47:44.422 INFO 55461 --- [ main] l.lockservice.StandardLockService : Successfully released change log lock
2020-01-31 12:47:44.422 INFO 55461 --- [ main] l.i.spring.MultiTenantSpringLiquibase : Liquibase ran for schema
2020-01-31 12:47:44.470 INFO 55461 --- [ main] com.example.demo.Gh19993Application : Started Gh19993Application in 2.272 seconds (JVM running for 2.536)
2020-01-31 12:47:44.472 INFO 55461 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2020-01-31 12:47:44.474 INFO 55461 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
If you would like us to spend some more time investigating, please provide a minimal sample that reproduces the problem. You can share it with us by zipping it up and attaching it to this issue or by pushing it to a separate repository on GitHub.
Comment From: alexis-puska
Hi all, sorry for open this ticket, with your stacktrace i can see that liquibase change the logging by liquiase.* my logback configuration cannot logged these lines and i hava databasechangelog lock inside my database table.
this first problem with liquibase was solved. Now liquibase 3.8.5 diff error -> go to the liquibase forum.
Thanks wilkinsona