addColumn

The addColumn Change Type adds a new column to an existing table.

Uses

You can typically use the addColumn Change Type when you want to add a new column and deploy it to the table in your database.

Running the addColumn Change Type

To run this Change Type, follow these steps:

  1. Add the Change Type to your changeset, as shown in the examples on this page.
  2. Specify any required attributes. Use the table on this page to see which ones your database requires.
  3. Deploy your changeset by running the update command:
  4. liquibase update

Now, you should see a new column.

Available attributes

Name Description Required for Supports
catalogName

Name of the catalog

all
schemaName

Name of the schema

all
tableName Name of the table to add the column to all all

Nested tags

Name Description Required for Supports Multiple allowed
column

The 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.

Note: YAML and JSON changelogs using the column tag must nest it within a columns tag.

all all yes

Examples

--liquibase formatted sql

--changeset liquibase-docs:addColumn-example
ALTER TABLE cat.person ADD address VARCHAR(255) NULL,
ADD name VARCHAR(50) NOT NULL;
databaseChangeLog:
- changeSet:
    id: addColumn-example
    author: liquibase-docs
    changes:
      - addColumn:
          tableName: person
          columns:
          - column:
              name: middlename
              type: varchar(50)
{
    "databaseChangeLog": [
        {
            "changeSet": {
                "id": "addColumn-example",
                "author": "liquibase-docs",
                "changes": [
                    {
                        "addColumn": {
                            "catalogName": "cat",
                            "columns": [
                                {
                                    "column": {
                                        "name": "address",
                                        "type": "varchar(255)"
                                    }
                                },
                                {
                                    "column": {
                                        "constraints": {
                                            "nullable": false
                                        },
                                        "name": "name",
                                        "type": "varchar(50)"
                                    }
                                }
                            ],
                            "schemaName": "public",
                            "tableName": "person"
                        }
                    }
                ]
            }
        }
    ]
}
<databaseChangeLog
    xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
    xmlns:pro="http://www.liquibase.org/xml/ns/pro"
    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd
        http://www.liquibase.org/xml/ns/dbchangelog-ext
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
        http://www.liquibase.org/xml/ns/pro
        http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd">

    <changeSet author="liquibase-docs" id="addColumn-example">
        <addColumn catalogName="cat"
            schemaName= "public"
            tableName="person">
            <column name="address"
                type="varchar(255)"/>
            <column name="name"
                type="varchar(50)">
                <constraints nullable="false" />
            </column>
        </addColumn>
    </changeSet>

</databaseChangeLog>

Database support

Database Notes Auto Rollback
DB2/LUW Supported Yes
DB2/z Supported Yes
Derby Supported Yes
Firebird Supported Yes
Google BigQuery Supported Yes
H2 Supported Yes
HyperSQL Supported Yes
INGRES Supported Yes
Informix Supported Yes
MariaDB Supported Yes
MySQL Supported Yes
Oracle Supported Yes
PostgreSQL Supported Yes
Snowflake Supported Yes
SQL Server Supported Yes
SQLite Supported Yes
Sybase Supported Yes
Sybase Anywhere Supported Yes

Related links