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 UpdateVisitor implements ChangeSetVisitor { private Database database; Logger log = Logger.getLogger(getClass().getName()); public UpdateVisitor(Database database) { this.database = database; } public Direction getDirection() { return ChangeSetVisitor.Direction.FORWARD; } public void visit(ChangeSet changeSet, DatabaseChangeLog databaseChangeLog, Database database) throws LiquibaseException { ChangeSet.RunStatus runStatus = this.database.getRunStatus(changeSet); log.fine("Running Changeset:" + changeSet); ChangeSet.ExecType execType = changeSet.execute(databaseChangeLog, this.database); if (!runStatus.equals(ChangeSet.RunStatus.NOT_RAN)) { execType = ChangeSet.ExecType.RERAN; } this.database.markChangeSetExecStatus(changeSet, execType); this.database.commit(); } }