I have a Spring Boot 1.4.0 based Project that uses Liquibase.
Is it possible to execute a Method AFTER liquibase finished?
Something like Bean Post Processor?
Spring Boot auto-configures a SpringLiquibase bean named liquibase. Any bean that depends on this bean will be created after Liquibase has finished. For example, you could use @PostConstruct to populate the database:
@Bean
@DependsOn("liquibase")
public YourBean yourBean() {
return new YourBean();
}
static class YourBean {
@PostConstruct
public void populateDatabase() {
System.out.println("This will be called after Liquibase has finished");
}
}
Another solution would be to let LiquiBase insert these things into your database - but only when running in dev-mode.
You can do this in LiquiBase by specifying a context="" attribute.
Another option would be to let LiquiBase only insert this test-data into your database when dbms="h2db" (forgot what the exact string is to select h2, check documentation please!)
Both are attributes on changesets.
This is my own preferred solution for this kind of scenarios.