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 create a column for your table, follow these steps:

  1. Add the addColumn Change Type to your changeset with the needed attributes as it is shown in the examples.
  2. Deploy your changeset by running the update command:
  3. 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

<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>
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"
                        }
                    }
                ]
            }
        }
    ]
}
--liquibase formatted sql

--changeset liquibase-docs:addColumn-example
ALTER TABLE cat.person ADD address VARCHAR(255) NULL,
ADD name VARCHAR(50) NOT NULL;

Database support

Database Notes Auto Rollback
DB2/LUW Supported Yes
DB2/z Supported Yes
Derby Supported Yes
Firebird 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