preConditions onFail=MARK_RAN versus runAlways for Liquibase retry safety: which prevents duplicate writes?
Goal: configure Liquibase so that a transient failure of a changeSet does not lead to duplicate inserts or updates when the changelog is rerun. Constraints: the solution must work with the existing lockWaitTimeout and retryCount mechanisms, must not rely on manual intervention, and must consider whether the changeSet is idempotent or not. Using preConditions