Top Description Fields Constructors Methods
liquibase.change.core

public Class DropColumnChange

extends AbstractChange
implements ChangeWithColumns<ColumnConfig>
Class Inheritance
All Implemented Interfaces
liquibase.change.ChangeWithColumns
Annotations
@DatabaseChange
name:dropColumn
description:Drop existing column(s).
priority:1
appliesTo:column
Imports
liquibase.change.*, liquibase.database.Database, liquibase.database.core.DB2Database, .Db2zDatabase, .SQLiteDatabase, liquibase.exception.DatabaseException, .UnexpectedLiquibaseException, .ValidationErrors, liquibase.snapshot.InvalidExampleException, .SnapshotGeneratorFactory, liquibase.statement.SqlStatement, liquibase.statement.core.DropColumnStatement, .ReorganizeTableStatement, liquibase.structure.core.Column, .Index, .Table, liquibase.util.StringUtil, java.util.ArrayList, .Arrays, .List, .Set, java.util.stream.Collectors

Drops an existing column from a table.

Field Summary

Modifier and TypeField and Description
private String
private String
private List<ColumnConfig>
private String
private String
Inherited from liquibase.change.AbstractChange:
NODENAME_COLUMN

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
addColumn(ColumnConfig column)

Implements liquibase.change.ChangeWithColumns.addColumn.

Add a column configuration to the Change.

public ChangeStatus
checkStatus(Database database)

Overrides liquibase.change.AbstractChange.checkStatus.

Implements liquibase.change.Change.checkStatus.

Validate that this change executed successfully against the given database.

private SqlStatement[]
private SqlStatement[]
public SqlStatement[]
generateStatements(Database database)

Implements liquibase.change.Change.generateStatements.

Generates the SqlStatement objects required to run the change for the given database.

private SqlStatement[]
public boolean
public String
public String
public List<ColumnConfig>
getColumns()

Implements liquibase.change.ChangeWithColumns.getColumns.

Return all the ColumnConfig objects defined for this Change

public String
getConfirmationMessage()

Implements liquibase.change.Change.getConfirmationMessage.

Confirmation message to be displayed after the change is executed.

public String
public Object
public String
public String
private boolean
public void
setCatalogName(String catalogName)

public void
setColumnName(String columnName)

public void
public void
setSchemaName(String schemaName)

public void
setTableName(String tableName)

public boolean
public ValidationErrors
validate(Database database)

Overrides liquibase.change.AbstractChange.validate.

Implements liquibase.change.Change.validate.

Implementation checks the ChangeParameterMetaData for declared required fields and also delegates logic to the liquibase.sqlgenerator.SqlGenerator#validate(liquibase.statement.SqlStatement, liquibase.database.Database, liquibase.sqlgenerator.SqlGeneratorChain) method on the SqlStatement objects returned by generateStatements.

Inherited from liquibase.change.AbstractChange:
createChangeMetaDatacreateChangeParameterMetadatacreateDescriptionMetaDatacreateEmptyColumnConfigcreateExampleValueMetaDatacreateInversescreateMustEqualExistingMetaDatacreateRequiredDatabasesMetaDatacreateSerializationTypeMetaDatacreateSinceMetaDatacreateSupportedDatabasesMetaDatacustomLoadLogicequalsfinishInitializationgenerateCheckSumgenerateRollbackStatementsgenerateRollbackStatementsVolatilegetAffectedDatabaseObjectsgetChangeSetgetDescriptiongetExcludedFieldFiltersgetResourceAccessorgetSerializableFieldNamespacegetSerializableFieldsgetSerializableFieldTypegetSerializedObjectNamehashCodeisInvalidPropertyloadmodifyserializeserializeValuesetChangeSetsetResourceAccessorshouldExecuteChangesupportsRollbacktoStringwarn

Field Detail

catalogNameback to summary
private String catalogName
columnNameback to summary
private String columnName
columnsback to summary
private List<ColumnConfig> columns
schemaNameback to summary
private String schemaName
tableNameback to summary
private String tableName

Constructor Detail

DropColumnChangeback to summary
public DropColumnChange()

Method Detail

addColumnback to summary
public void addColumn(ColumnConfig column)

Implements liquibase.change.ChangeWithColumns.addColumn.

Doc from liquibase.change.ChangeWithColumns.addColumn.

Add a column configuration to the Change.

Annotations
@Override
checkStatusback to summary
public ChangeStatus checkStatus(Database database)

Overrides liquibase.change.AbstractChange.checkStatus.

Implements liquibase.change.Change.checkStatus.

Doc from liquibase.change.Change.checkStatus.

Validate that this change executed successfully against the given database. This will check that the update completed at a high level plus check details of the change. For example, a change to add a column will check that the column exists plus data type, default values, etc.

Annotations
@Override
generateMultipleColumnsback to summary
private SqlStatement[] generateMultipleColumns(Database database) throws DatabaseException
generateSingleColumnback to summary
private SqlStatement[] generateSingleColumn(Database database) throws DatabaseException
generateStatementsback to summary
public SqlStatement[] generateStatements(Database database)

Implements liquibase.change.Change.generateStatements.

Doc from liquibase.change.Change.generateStatements.

Generates the SqlStatement objects required to run the change for the given database.

NOTE: This method may be called multiple times throughout the changelog execution process and may be called in documentation generation and other integration points as well.

If this method reads from the current database state or uses any other logic that will be affected by whether previous changeSets have ran or not, you must return true from generateStatementsVolatile.
Annotations
@Override
generateStatementsForSQLiteDatabaseback to summary
private SqlStatement[] generateStatementsForSQLiteDatabase(Database database) throws DatabaseException
generateStatementsVolatileback to summary
public boolean generateStatementsVolatile(Database database)

Overrides liquibase.change.AbstractChange.generateStatementsVolatile.

Implements liquibase.change.Change.generateStatementsVolatile.

Doc from liquibase.change.AbstractChange.generateStatementsVolatile.

Implementation delegates logic to the liquibase.sqlgenerator.SqlGenerator#generateStatementsIsVolatile(Database) method on the SqlStatement objects returned by generateStatements. If zero or null SqlStatements are returned by generateStatements then this method returns false.

Annotations
@Override
getCatalogNameback to summary
public String getCatalogName()
Annotations
@DatabaseChangeProperty
since:3.0
mustEqualExisting:column.relation.schema.catalog
description:Name of the database catalog
getColumnNameback to summary
public String getColumnName()
Annotations
@DatabaseChangeProperty
requiredForDatabase:none
mustEqualExisting:column
description:Name of the column to drop, if dropping a single column. Ignore if nested columns are defined
getColumnsback to summary
public List<ColumnConfig> getColumns()

Implements liquibase.change.ChangeWithColumns.getColumns.

Doc from liquibase.change.ChangeWithColumns.getColumns.

Return all the ColumnConfig objects defined for this Change

Annotations
@Override
@DatabaseChangeProperty
description:Columns to be dropped if dropping multiple columns. If this is populated, the columnName attribute is ignored.
requiredForDatabase:none
getConfirmationMessageback to summary
public String getConfirmationMessage()

Implements liquibase.change.Change.getConfirmationMessage.

Doc from liquibase.change.Change.getConfirmationMessage.

Confirmation message to be displayed after the change is executed. Should include relevant configuration settings to make it as helpful as possible. This method may be called outside the changelog execution process, such as in documentation generation.

Annotations
@Override
getSchemaNameback to summary
public String getSchemaName()
Annotations
@DatabaseChangeProperty
mustEqualExisting:column.relation.schema
description:Name of the database schema
getSerializableFieldValueback to summary
public Object getSerializableFieldValue(String field)

Overrides liquibase.change.AbstractChange.getSerializableFieldValue.

Implements liquibase.serializer.LiquibaseSerializable.getSerializableFieldValue.

Annotations
@Override
getSerializedObjectNamespaceback to summary
public String getSerializedObjectNamespace()

Overrides liquibase.change.AbstractChange.getSerializedObjectNamespace.

Implements liquibase.serializer.LiquibaseSerializable.getSerializedObjectNamespace.

Annotations
@Override
getTableNameback to summary
public String getTableName()
Annotations
@DatabaseChangeProperty
description:Name of the table containing the column to drop
mustEqualExisting:column.relation
isMultipleback to summary
private boolean isMultiple()
setCatalogNameback to summary
public void setCatalogName(String catalogName)
setColumnNameback to summary
public void setColumnName(String columnName)
setColumnsback to summary
public void setColumns(List<ColumnConfig> columns)

Implements liquibase.change.ChangeWithColumns.setColumns.

Annotations
@Override
setSchemaNameback to summary
public void setSchemaName(String schemaName)
setTableNameback to summary
public void setTableName(String tableName)
supportsback to summary
public boolean supports(Database database)

Overrides liquibase.change.AbstractChange.supports.

Implements liquibase.change.Change.supports.

Doc from liquibase.change.AbstractChange.supports.

Implementation delegates logic to the liquibase.sqlgenerator.SqlGenerator#supports(liquibase.statement.SqlStatement, liquibase.database.Database) method on the SqlStatement objects returned by generateStatements. If no or null SqlStatements are returned by generateStatements then this method returns true. If generateStatementsVolatile(liquibase.database.Database) returns true, we cannot call generateStatements and so assume true.

Annotations
@Override
validateback to summary
public ValidationErrors validate(Database database)

Overrides liquibase.change.AbstractChange.validate.

Implements liquibase.change.Change.validate.

Doc from liquibase.change.AbstractChange.validate.

Implementation checks the ChangeParameterMetaData for declared required fields and also delegates logic to the liquibase.sqlgenerator.SqlGenerator#validate(liquibase.statement.SqlStatement, liquibase.database.Database, liquibase.sqlgenerator.SqlGeneratorChain) method on the SqlStatement objects returned by generateStatements. If no or null SqlStatements are returned by generateStatements then this method returns no errors. If there are no parameters than this method returns no errors

Annotations
@Override