Granular changesets vs. manual idempotency: choosing a retry-safe migration strategy
Liquibase marks a changeset FAILED when any statement inside it errors, then re-executes the entire changeset on the next run. This guarantees retry safety only when each changeset contains a single logical change, because the DATABASECHANGELOG record prevents re-running an EXECUTED changeset. Teams that prefer fewer, coarser changesets must instead make eve