Database / Liquibase interview questions
What is the Liquibase Maven plugin and how do you run migrations with it?
The Liquibase Maven plugin integrates Liquibase commands directly into the Maven build lifecycle, allowing you to run database migrations as part of your build without needing a separate CLI installation. It is the standard approach for Java projects that use Maven as their build tool and want to apply migrations outside of a running Spring Boot application — for example, in a CI pipeline or as a pre-integration-test step.
Add the plugin to pom.xml:
<plugin> <groupId>org.liquibase</groupId> <artifactId>liquibase-maven-plugin</artifactId> <version>4.25.0</version> <configuration> <changeLogFile>src/main/resources/db/changelog/db.changelog-master.xml</changeLogFile> <url>jdbc:postgresql://localhost:5432/myapp</url> <username>${db.username}</username> <password>${db.password}</password> <driver>org.postgresql.Driver</driver> </configuration> </plugin>
Common Maven goals:
mvn liquibase:update— Apply pending changeSets.mvn liquibase:updateSQL— Generate pending SQL without applying.mvn liquibase:rollback -Dliquibase.rollbackTag=v1.5.0— Rollback to a tag.mvn liquibase:diff— Compare two database schemas.mvn liquibase:clearCheckSums— Clear all checksums.mvn liquibase:status— Show pending changeSets without running them.
For integration tests, bind the update goal to the pre-integration-test phase so the schema is prepared before tests run:
<executions> <execution> <phase>pre-integration-test</phase> <goals><goal>update</goal></goals> </execution> </executions>
More Related questions...