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 Name of the catalog all
schemaName Name of the schema all
tableName Name of the table to add the column to all all

Nested properties

Name Description Required for Supports Multiple allowed
columns Column constraint and foreign key information. Setting the defaultValue attribute will specify a default value for the column. Setting the value attribute will set all rows existing to the specified value without modifying the column default.
See the column tag documentation for more information.
all all yes

XML Example

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

YAML Example

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

JSON Example

{  "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"  }  }]  }  }

SQL Example

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