package liquibase.ext.ora.disableconstraint;
import liquibase.change.Change;
import liquibase.change.ChangeMetaData;
import liquibase.change.DatabaseChange;
import liquibase.database.Database;
import liquibase.ext.ora.check.CheckAttribute;
import liquibase.ext.ora.enableconstraint.EnableConstraintChange;
import liquibase.statement.SqlStatement;
@DatabaseChange(name="disableConstraint", description = "Disable constraint", priority = ChangeMetaData.PRIORITY_DEFAULT)
public class DisableConstraintChange extends CheckAttribute {
public DisableConstraintChange() {
}
@Override
public SqlStatement[] generateStatements(Database database) {
String schemaName = getSchemaName() == null ? database.getDefaultSchemaName() : getSchemaName();
DisableConstraintStatement statement = new DisableConstraintStatement(schemaName, getTableName(),
getConstraintName());
statement.setTablespace(getTablespace());
return new SqlStatement[]{statement};
}
@Override
public String getConfirmationMessage() {
return "constraint " + getConstraintName() + " DISABLED in " + getTableName();
}
@Override
protected Change[] createInverses() {
EnableConstraintChange inverse = new EnableConstraintChange();
inverse.setSchemaName(getSchemaName());
inverse.setTableName(getTableName());
inverse.setConstraintName(getConstraintName());
return new Change[]{inverse};
}
}