Database / Liquibase interview questions
What is the Liquibase updateTestingRollback command?
The updateTestingRollback command is a quality assurance command that tests whether your rollback definitions are actually correct and complete. It performs three steps in sequence on the target database:
- Applies all pending changeSets (like a normal
update). - Immediately rolls back all the changeSets it just applied (in reverse order).
- Applies the same changeSets again.
The goal is to verify that your rollback blocks actually return the database to the pre-migration state, and that the migration can then be successfully re-applied after rolling back. If either the rollback step or the second apply fails, you know your rollback definitions are broken.
mvn liquibase:updateTestingRollback
This command is most valuable as a pre-production gate in CI pipelines. If updateTestingRollback passes against an integration test database, you have confidence that:
- The migration applies successfully.
- The rollback does what you expect — not a silent no-op or a partially-reversing operation.
- The migration is idempotent enough to be re-applied after a rollback.
It is not appropriate for production runs (it applies, rolls back, and re-applies all pending changes — three times the operations). Use it in a dedicated test environment where temporary schema thrashing is acceptable. For production safety testing, use updateSQL and rollbackSQL to review the generated SQL manually instead.
More Related questions...