updateSQL is a Liquibase “dry-run” command that shows you the exact SQL Liquibase would execute, without actually changing the database.
One-sentence definition (interview-ready)
updateSQLgenerates the SQL statements for pending changesets so you can review or approve them before execution.
What it’s used for (real-world)
1️⃣ Review & approval (very common in enterprises)
- DBAs want to see SQL before it runs
- Security/compliance requires approval
- Teams want to understand locks, indexes, DDL
liquibase updateSQL
Outputs SQL instead of executing it.
2️⃣ Debug Liquibase abstractions
Liquibase is declarative — updateSQL lets you verify:
- how types map per DB
- which DDL is generated
- whether something dangerous is happening
Example:
- addColumn:
tableName: users
columns:
- column:
name: status
type: varchar(20)
On Postgres vs Oracle → SQL will differ.updateSQL makes that explicit.
3️⃣ Controlled execution in restricted environments
Some orgs:
- generate SQL with
updateSQL - store it as an artifact
- execute manually via DBA tools
Liquibase still tracks checksums/history.
What updateSQL does NOT do (important)
❌ Does not modify the database
❌ Does not insert rows into DATABASECHANGELOG
❌ Does not validate runtime behavior (locks, timing)
It’s preview only.
Typical workflow (enterprise pattern)
- Dev writes changelog
- CI runs:
liquibase updateSQL > migration.sql - SQL reviewed / approved
- Same changelog later executed with:
liquibase update
Common interview pitfalls ❌
“It applies migrations in a safe mode”
❌ No — it never applies anything.
“It validates migrations”
❌ No — it only prints SQL.
“It replaces staging testing”
❌ Absolutely not.
Interview-ready answer (2 sentences)
updateSQLis used to generate and preview the SQL Liquibase would run for pending changesets without executing them. It’s commonly used for review, auditing, and understanding database-specific SQL generated from declarative changelogs.
Senior rule of thumb
If you wouldn’t be comfortable reading the SQL from
updateSQL, you shouldn’t run the migration in production.