I am migrating my project database to Liquibase.
There are several versions in production already .
Unfortunately there is no “version” mark in the database.
So I am creating a changelog like this:
When the changelog is executed the changeset will be marked as executed,
regardless of whether it was actually executed or not. This not convinient for database state analysis.
I’d like to follow the rule “changelog table contains records only about actually executed changesets”
So I suggest to introduce additional onFail action “SKIP” which is handled by Liquibase in the following way:
- the changeset record in changelog table gets some mark that changeset was not executed due to precondition failure
- During next database updates the Liquibase consider the changeset as executed (e.g. do not evaluate the precondition and do not execute the changeset).
The second item is important for checking whether the database state is up to date or not.
If onFail=“CONTINIE” is used then Liquibase indicates all such changesets as “need to be executed” for an up to date database.
But I’d like to get “zero chagesets need to be executed” for an up to date database.