Liquibase automation is based on layering changes over schemas that already exist, and the link you sent with Nathan’s reply is still spot on correct info:
… it is sort of a chicken and egg problem. When starting liquibase, we don’t know what initial startup we need to do because we can’t check the table in the schema to know what we have already done…
Good to see you are searching the discussion topics. Liquibase automation and automation in general is best for use in repetitive tasks, which assumes a known set of schemas.
If you are using Spring Boot then you can use Pre-Liquibase module for this. It solves the chicken-and-egg problem in the sense that it allows you to execute some arbitrary SQL before Liquibase itself fires. Typically what you put in Pre-Liquibase SQL file would look something like this:
CREATE SCHEMA IF NOT EXISTS myschema;
but Pre-Liquibase even allows the SQL script to be dynamic:
CREATE SCHEMA IF NOT EXISTS ${spring.liquibase.default-schema};
You can use Pre-Liquibase outside of a Spring Boot context, i.e. in pure Spring Framework. You cannot, however, use it without Spring as it relies on Spring for parsing your SQL file and executing it.