Top Description Fields Constructors Methods
liquibase.change.core

public Class AddColumnChange

extends AbstractChange
implements ChangeWithColumns<AddColumnConfig>
Class Inheritance
All Implemented Interfaces
liquibase.change.ChangeWithColumns
Annotations
@DatabaseChange
name:addColumn
priority:1
appliesTo:table
description:Adds a new column to an existing table
Imports
liquibase.change.*, liquibase.change.visitor.AddColumnChangeVisitor, .ChangeVisitor, liquibase.database.Database, liquibase.database.core.DB2Database, .MySQLDatabase, liquibase.parser.core.ParsedNodeException, liquibase.snapshot.SnapshotGeneratorFactory, liquibase.sqlgenerator.SqlGeneratorFactory, liquibase.statement.*, liquibase.statement.core.*, liquibase.structure.core.Column, .PrimaryKey, .Table, liquibase.util.ISODateFormat, .StringUtil, java.util.*

Adds a column to an existing table.

Field Summary

Modifier and TypeField and Description
private String
private List<AddColumnConfig>
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(AddColumnConfig 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 AddNotNullConstraintChange
protected Change[]
createInverses()

Overrides liquibase.change.AbstractChange.createInverses.

Create inverse changes that can roll back this change.

private NotNullConstraint
private List<SqlStatement>
public SqlStatement[]
generateStatements(Database database)

Implements liquibase.change.Change.generateStatements.

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

public String
public List<AddColumnConfig>
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 String
public String
public void
public void
public void
setCatalogName(String catalogName)

public void
public void
setSchemaName(String schemaName)

public void
setTableName(String tableName)

Inherited from liquibase.change.AbstractChange:
createChangeMetaDatacreateChangeParameterMetadatacreateDescriptionMetaDatacreateEmptyColumnConfigcreateExampleValueMetaDatacreateMustEqualExistingMetaDatacreateRequiredDatabasesMetaDatacreateSerializationTypeMetaDatacreateSinceMetaDatacreateSupportedDatabasesMetaDatacustomLoadLogicequalsfinishInitializationgenerateCheckSumgenerateRollbackStatementsgenerateRollbackStatementsVolatilegenerateStatementsVolatilegetAffectedDatabaseObjectsgetChangeSetgetDescriptiongetExcludedFieldFiltersgetResourceAccessorgetSerializableFieldNamespacegetSerializableFieldsgetSerializableFieldTypegetSerializableFieldValuegetSerializedObjectNamehashCodeisInvalidPropertyloadserializeserializeValuesetChangeSetsetResourceAccessorshouldExecuteChangesupportssupportsRollbacktoStringvalidatewarn

Field Detail

catalogNameback to summary
private String catalogName
columnsback to summary
private List<AddColumnConfig> columns
schemaNameback to summary
private String schemaName
tableNameback to summary
private String tableName

Constructor Detail

AddColumnChangeback to summary
public AddColumnChange()

Method Detail

addColumnback to summary
public void addColumn(AddColumnConfig 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
createAddNotNullConstraintChangeback to summary
private AddNotNullConstraintChange createAddNotNullConstraintChange(AddColumnConfig column, ConstraintsConfig constraints)
createInversesback to summary
protected Change[] createInverses()

Overrides liquibase.change.AbstractChange.createInverses.

Doc from liquibase.change.AbstractChange.createInverses.

Create inverse changes that can roll back this change. This method is intended to be overridden by Change implementations that have a logical inverse operation. Default implementation returns null.

If generateRollbackStatements(liquibase.database.Database) is overridden, this method may not be called.

Returns:Change[]

Return null if there is no corresponding inverse and therefore automatic rollback is not possible. Return an empty array to have a no-op rollback.

Annotations
@Override
createNotNullConstraintback to summary
private NotNullConstraint createNotNullConstraint(ConstraintsConfig constraintsConfig)
generateAddNotNullConstraintStatementsback to summary
private List<SqlStatement> generateAddNotNullConstraintStatements(AddColumnConfig column, ConstraintsConfig constraints, Database database)
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
getCatalogNameback to summary
public String getCatalogName()
Annotations
@DatabaseChangeProperty
mustEqualExisting:relation.catalog
since:3.0
description:Name of the database catalog
getColumnsback to summary
public List<AddColumnConfig> getColumns()

Implements liquibase.change.ChangeWithColumns.getColumns.

Doc from liquibase.change.ChangeWithColumns.getColumns.

Return all the ColumnConfig objects defined for this Change

Annotations
@Override
@DatabaseChangeProperty
requiredForDatabase:all
description:Column constraint and foreign key information. Setting the "defaultValue" attribute specifies a default value for the column. Setting the "value" attribute sets all rows existing to the specified value without modifying the column default.
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:relation.schema
description:Name of the database schema
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
mustEqualExisting:table
description:Name of the table to add the column to
modifyback to summary
public void modify(ChangeVisitor changeVisitor) throws ParsedNodeException

Overrides liquibase.change.AbstractChange.modify.

Implements liquibase.change.Change.modify.

Annotations
@Override
Exceptions
ParsedNodeException:

Doc from liquibase.change.Change.modify.

if there is an error processing ChangeVisitor

removeColumnback to summary
public void removeColumn(ColumnConfig column)
setCatalogNameback to summary
public void setCatalogName(String catalogName)
setColumnsback to summary
public void setColumns(List<AddColumnConfig> columns)

Implements liquibase.change.ChangeWithColumns.setColumns.

Annotations
@Override
setSchemaNameback to summary
public void setSchemaName(String schemaName)
setTableNameback to summary
public void setTableName(String tableName)