Liquibase rollback fails with missing rollback definition after addColumn changeset
0 reputation · 26 Feb 2026, 12:14 UTC
Rollback aborts after a deployed schema change
I have a changelog where one changeset adds a column with a default value to an existing table, and a later changeset builds on that column. When I run a rollback command targeting the earlier changeset, Liquibase aborts and reports that no rollback was defined for the changeset, leaving the schema untouched.
My understanding is that Liquibase only reverses a changeset if it contains an explicit <rollback> block, and that some change types can be auto-reversed while others cannot. I am unsure which category addColumn with a default value falls into, and whether the failure I am seeing is purely the missing block or something about how the changeset was written.
A second concern: even once a rollback block exists, dropping the column would also destroy the data it holds, and I have not found a documented built-in mechanism for preserving that data during reversal.
Questions
- Which change types does Liquibase auto-reverse, and does
addColumnwith a default value require an explicit<rollback>block? - Is there a documented pattern for archiving column data inside a rollback block before the column is dropped?
- If a rollback fails partway through, what state does Liquibase leave the database in, and how is that recorded in the DATABASECHANGELOG table?