package liquibase.changelog.visitor; import liquibase.changelog.ChangeSet; import liquibase.changelog.DatabaseChangeLog; import liquibase.database.Database; import liquibase.exception.LiquibaseException; import liquibase.logging.LogFactory; public class RollbackVisitor implements ChangeSetVisitor { private Database database; public RollbackVisitor(Database database) { this.database = database; } public Direction getDirection() { return ChangeSetVisitor.Direction.REVERSE; } public void visit(ChangeSet changeSet, DatabaseChangeLog databaseChangeLog, Database database) throws LiquibaseException { LogFactory.getLogger().info("Rolling Back Changeset:" + changeSet); changeSet.rollback(this.database); this.database.removeRanStatus(changeSet); this.database.commit(); } }