liquibase.integration.ant.DropAllTask Maven / Gradle / Ivy
package liquibase.integration.ant;
import liquibase.CatalogAndSchema;
import liquibase.Liquibase;
import liquibase.exception.LiquibaseException;
import liquibase.util.StringUtils;
import org.apache.tools.ant.BuildException;
import java.util.ArrayList;
import java.util.List;
public class DropAllTask extends BaseLiquibaseTask {
private String schemas;
private String catalog;
@Override
public void executeWithLiquibaseClassloader() throws BuildException {
Liquibase liquibase = getLiquibase();
try {
if (StringUtils.trimToNull(schemas) != null) {
List schemaNames = StringUtils.splitAndTrim(this.schemas, ",");
List schemas = new ArrayList<>();
for (String name : schemaNames) {
schemas.add(new CatalogAndSchema(catalog, name));
}
liquibase.dropAll(schemas.toArray(new CatalogAndSchema[schemas.size()]));
} else {
liquibase.dropAll();
}
} catch (LiquibaseException e) {
throw new BuildException("Unable to drop all objects from database. " + e.toString(), e);
}
}
public String getCatalog() {
return catalog;
}
public void setCatalog(String catalog) {
this.catalog = catalog;
}
public String getSchemas() {
return schemas;
}
public void setSchemas(String schemas) {
this.schemas = schemas;
}
}