Database / Liquibase interview questions
What is the Liquibase updateSQL command and when is it used?
The updateSQL command generates the SQL that Liquibase would execute during an update run — without actually applying any changes to the database. It writes the complete SQL to standard output or a file, including the INSERT statements that would update DATABASECHANGELOG and the actual DDL/DML from your changeSets.
liquibase updateSQL > pending-migrations.sql # Or with Spring Boot CLI plugin mvn liquibase:updateSQL
Common scenarios where updateSQL is invaluable:
- Pre-deployment review — In regulated environments or strict change-management processes, the generated SQL is submitted to a DBA or change review board for approval before the deployment runs. This is common in banks, healthcare, and government projects where direct application access to production databases is prohibited.
- DBAs execute migrations — Some organisations require that only DBAs run scripts against production. The generated SQL file is handed to the DBA, who reviews and executes it manually.
- Debugging — Developers use
updateSQLto verify that Liquibase is generating the expected SQL before running it against a shared development database. - CI pipeline artifact — Generate the SQL as a pipeline artifact attached to each release so there is an auditable record of exactly what was applied to each environment.
The output includes comments that identify each changeSet by ID, author, and file, making it straightforward to trace which part of your changeLog produced which SQL statement.
More Related questions...