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:
Step 1: Add the addColumn
Change Type to your changeset with the needed attributes as it is shown in the examples.
Step 2: Deploy your changeset by running the update
command.
liquibase update
Now, you should see a new column.
Available attributes
Name | Description | Required for | Supports |
---|---|---|---|
catalogName
|
The name of the catalog | all | |
schemaName
|
The name of the schema | all | |
tableName
|
The name of the table to add the column | all | all |
Nested properties
Name | Description | Required for | Supports | Multiple allowed |
---|---|---|---|---|
column
|
The column constraint and foreign key information. Setting the Note: YAML and JSON changelogs using the |
all | all | yes |

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

databaseChangeLog:
- changeSet:
id: addColumn-example
author: liquibase-docs
changes:
- addColumn:
tableName: person
columns:
- column:
name: middlename
type: varchar(50)

{
"changeSet":{
"id":"addColumn-example",
"author":"liquibase-docs",
"changes":[
{
"addColumn":{
"catalogName":"cat",
"columns":[
{
"column":{
"name":"address",
"position":2,
"type":"varchar(255)"
}
},
{
"column":{
"afterColumn":"id",
"constraints":{
"nullable":false
},
"name":"name",
"type":"varchar(50)"
}
}
],
"schemaName":"public",
"tableName":"person"
}
}
]
}
}

ALTER TABLE cat.person ADD address VARCHAR(255) NULL,
ADD name VARCHAR(50) NOT NULL AFTER `id`;
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 |
SQL Server | Supported | Yes |
SQLite | Supported | Yes |
Sybase | Supported | Yes |
Sybase Anywhere | Supported | Yes |