There isn’t a way to skip them currently. The existing theory is that changelog-level preconditions are evaluated before any changeSets are executed, and the set of preconditions is the union of all the preconditions in all the changeLogs.
There is a feature in jira to support what you are wanting, but it is not in right now.
You can have changeSet-level preconditions of , but it would need to be set on each changeSet in your changeLog.
You could write a custom changelog parser (liquibase.org/extensions) to build in whatever logic you need to build up the changelog to run, but that may or may not be too much work for you.
I have a “master”-changelog, including other changelogs.
Some of the changelogs have preCondtions to determinate if their chagesets should be executed or not. If one changelog is skipped, the others should be executed nonetheless. How do I get this behaviour?
My first try was to include all changelogs and set a preCondtions at the the top of the included files. But onFail=“Halt” stops the complete execution of the master changelog. I think onFail=“Continue” should do the trick (as far as I interpret the manual), but all I got is an exception:
cvc-enumeration-valid: Value ‘continue’ is not facet-valid with respect to enumeration ‘[HALT, WARN]’. It must be a value from the enumeration
So “Continue” seems not to be an option here (is this because the preConditions Tag is at top level, not in a changeSet? If so, it should be documented…).
So, is this an error in 2.0.4 (2.0.5 behaves the same)? Would onFail=“continue” provide the behaviour I need? Is there another solution?