How does Liquibase behave on a conditional changeset during rollback?


I can't find anywhere how it does behave.

Evaluating the condition again during rollback wouldn't make sense because the change in the changeset might have changed the outcome of the condition.

I would expect the correct behavior would be that during rollback, the condition is not evaluated again, but whether the rollback is executed or not is decided based on the execution type (EXECTYPE) in the databasechangelog record. That execution type should reflect whether the changeset was executed or not if the condition was configured correctly.

But, I didn't find any documentation that confirms or denies that. I don't even know how it behaves. I could start experimenting to find out how it behaves. But even that doesn't make sense because I don't know whether the behavior that I will find is defined or undefined. If it is undefined, it doesn't help to know the behavior because I can't rely on it.


We are currently using version 3.5.3.


Stefan Mondelaers


Affects versions