package liquibase.changelog.visitor;
import liquibase.changelog.ChangeSet;
import liquibase.changelog.DatabaseChangeLog;
import liquibase.database.Database;
import liquibase.exception.LiquibaseException;
import java.util.logging.Logger;
public class RollbackVisitor implements ChangeSetVisitor {
private Database database;
Logger logger = Logger.getLogger(getClass().getName());
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 {
logger.info("Rolling Back Changeset:" + changeSet);
changeSet.rollback(this.database);
this.database.removeRanStatus(changeSet);
this.database.commit();
}
}