New Webinar: Govern roles, shares, and data movement in Snowflake

Learn how to govern Snowflake roles, shares, and data movement without slowing delivery. Join our live webinar on controlling drift, permissions, and audit readiness.

How does Liquibase handle data types?

When you specify a data type in the type field of a Change Type or tag, such as the <column type="XYZ"> field, Liquibase evaluates the type to send it to your database.

Liquibase implements many generic types natively. When necessary, Liquibase converts the data type you specify into a different type preferred by your database.

For example, if you specify the data type BOOLEAN in your changelog, Liquibase passes it to a Snowflake database as a BOOLEAN. However, on a PostgreSQL database, Liquibase converts it to a BIT.

Data type support by database

The following table shows how each database platform handles Liquibase's generic data types:

  • Each row represents a database supported by Liquibase

  • For each database, data types are organized into two groups:

    • Supported as-is: These Liquibase generic types work natively without conversion

    • With specific mappings: These show which database-specific types Liquibase converts each generic type to

To determine how a specific Liquibase data type interacts with your database, locate your platform and database combination in the table and review both sections.

Platform/database

Supported types

Amazon DynamoDB/Amazon DynamoDB

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

Databricks/Databricks

With specific mappings:

ARRAY: ARRAY

ARRAY: ARRAY

BIGINT: BIGINT

BLOB: BINARY

BOOLEAN: BOOLEAN

CHAR: CHAR

CLOB: CLOB

CURRENCY: CURRENCY

DATE: DATE

DATETIME: TIMESTAMP

DECIMAL: DECIMAL

DOUBLE: DOUBLE

FLOAT: FLOAT

INT: INT

MEDIUMINT: MEDIUMINT

NCHAR: NCHAR

NUMBER: NUMBER

NVARCHAR: NVARCHAR

SMALLINT: SMALLINT

TIME: TIME

TIMESTAMP: TIMESTAMP

TINYINT: TINYINT

UUID: UUID

VARCHAR: STRING

XML: XML

Google BigQuery/Google BigQuery

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, X

IBM DB2/IBM DB2 LUW

With specific mappings:

BIGINT: BIGINT

BLOB: BINARY, BLOB, VARBINARY

BOOLEAN: BOOLEAN, SMALLINT

CHAR: CHARCLOB: CLOB

CURRENCY: DECIMAL

DATE: DATE

DATETIME: TIMESTAMP

DECIMAL: DECIMAL

DOUBLE: DOUBLE

FLOAT: FLOAT

INT: INTEGER

MEDIUMINT: MEDIUMINT

NCHAR: NCHAR

NUMBER: NUMERIC

NVARCHAR: NVARCHAR

SMALLINT: SMALLINT

TIME: TIME

TIMESTAMP: TIMESTAMP

TINYINT: SMALLINT

UUID: CHAR

VARCHAR: VARCHAR

XML: XML

IBM DB2 zOS/IBM DB2 zOS

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

MariaDB/MariaDB Server

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

MariaDB SkySQL/MariaDB Sky SQL

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

Microsoft Azure SQL Database/ Microsoft SQL Server

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

Microsoft Azure SQL Managed Instance/Microsoft SQL Server

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

Microsoft SQL Server/Microsoft SQL Server

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

Microsoft SQL Server (AWS RDS)/Microsoft SQL Server

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

Microsoft SQL Server (Google Cloud SQL)/Microsoft SQL Server

With specific mappings:

BIGINT: BIGINT

BLOB: BINARY, IMAGE, VARBINARY

BOOLEAN: BIT

CHAR: CHAR

CLOB: NVARCHAR, VARCHAR

CURRENCY: MONEY, SMALLMONEY

DATE: DATE

DATETIME: DATETIME, DATETIME2

DECIMAL: DECIMAL

DOUBLE: FLOAT

FLOAT: FLOAT, REAL

INT: INT

MEDIUMINT: MEDIUMINT

NCHAR: NCHAR

NUMBER: NUMERIC

NVARCHAR: NVARCHAR

SMALLINT: SMALLINT

TIME: TIME

TIMESTAMP: DATETIME2, TIMESTAMP

TINYINT: TINYINT

UUID: UNIQUEIDENTIFIER

VARCHAR: VARCHAR

XML: TEXT, XML

MongoDB/MongoDB Atlas

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

MongoDB/MongoDB Community Server

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

MongoDB/MongoDB Enterprise Server

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

MySQL (AWS RDS)/MySQL

With specific mappings:

BIGINT: BIGINT

BLOB: BLOB

BOOLEAN: TINYINT(1)

CHAR: CHAR

CLOB: CLOB

CURRENCY: DECIMAL

DATE: DATE

DATETIME: DATETIME

DECIMAL: DECIMAL

DOUBLE: DOUBLE

FLOAT: FLOAT

INT: INT

MEDIUMINT: MEDIUMINT

NCHAR: NCHAR

NUMBER: NUMBER

NVARCHAR: NVARCHAR

SMALLINT: SMALLINT

TIME: TIME

TIMESTAMP: TIMESTAMP

TINYINT: TINYINT

UUID: CHAR

VARCHAR: VARCHAR

XML: XML

MySQL/MySQL Server

With specific mappings:

BIGINT: BIGINT

BLOB: BINARY, BLOB, LONGBLOB, MEDIUMBLOB, TINYBLOB, VARBINARYBOOLEAN: BIT, TINYINT

CHAR: CHARCLOB: LONGTEXT, MEDIUMTEXT, TEXT, TINYTEXT

CURRENCY: DECIMAL

DATE: DATE

DATETIME: DATETIME

DECIMAL: DECIMAL

DOUBLE: DOUBLE, DOUBLE PRECISION

FLOAT: REAL

INT: INT

MEDIUMINT: MEDIUMINT

NCHAR: NCHAR

NUMBER: NUMERIC

NVARCHAR: NVARCHAR

SMALLINT: SMALLINT

TIME: TIME

TIMESTAMP: TIMESTAMP

TINYINT: TINYINT

UUID: CHAR

VARCHAR: VARCHAR

XML: LONGTEXT

MySQL (AWS Aurora)/MySQL

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

MySQL (AWS RDS)/MySQL

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

MySQL (Azure Database)/MySQL

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

MySQL (Google Cloud SQL)/MySQL

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

Oracle/Oracle Database

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

Oracle/Oracle Autonomous Database

With specific mappings:

BIGINT: NUMBER

BLOB: BFILE, BLOB, RAW

BOOLEAN: BOOLEAN, NUMBER

CHAR: CHAR

CLOB: CLOB, NCLOB

CURRENCY: NUMBERDATE: DATE

DATETIME: DATETIME, TIMESTAMP

DECIMAL: DECIMAL

DOUBLE: DOUBLE PRECISION

FLOAT: FLOAT

INT: INTEGER

MEDIUMINT: MEDIUMINT

NCHAR: NCHAR

NUMBER: NUMBER

NVARCHAR: NVARCHAR2

SMALLINT: NUMBER

TIME: DATE

TIMESTAMP: TIMESTAMP

TINYINT: NUMBER

UUID: RAW

VARCHAR: VARCHAR2

XML: XMLTYPE

Oracle (AWS RDS)/Oracle

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

PostgreSQL/PostgreSQL

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

PostgreSQL (Amazon Redshift)/PostgreSQL

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

PostgreSQL (AWS Aurora)/PostgreSQL

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

PostgreSQL (AWS RDS)/PostgreSQL

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

PostgreSQL (Azure Database Flexible Server)/PostgreSQL

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

PostgreSQL (EnterpriseDB)/PostgreSQL

Supported as-is:

BIGINT, BLOB, BOOLEAN, CHAR, CLOB, CURRENCY, DATE, DATETIME, DECIMAL, DOUBLE, FLOAT, INT, MEDIUMINT, NCHAR, NUMBER, NVARCHAR, SMALLINT, TIME, TIMESTAMP, TINYINT, UUID, VARCHAR, XML

PostgreSQL (Google Cloud SQL)/PostgreSQL

With specific mappings:

BIGINT: BIGINT, BIGSERIAL

BLOB: BYTEA, OID

BOOLEAN: BIT

CHAR: CHARACTER

CLOB: TEXT

CURRENCY: DECIMAL

DATE: DATE

DATETIME: TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITHOUT TIME ZONE, TIMESTAMP WITHOUT TIME ZONE

DECIMAL: DECIMAL

DOUBLE: DOUBLE

FLOAT: REAL

INT: INT, INTEGER, SERIAL

MEDIUMINT: MEDIUMINT

NCHAR: NCHAR

NUMBER: NUMERIC

NVARCHAR: VARCHAR

SMALLINT: SMALLINT, SMALLSERIAL

TIME: TIME

TIMESTAMP: TIMESTAMP

TINYINT: SMALLINT

UUID: CHAR

VARCHAR: CHARACTER

XML: TEXT, XML

Snowflake/Snowflake

With specific mappings:

BIGINT: BIGINT

BINARY: BINARY, VARBINARY

BLOB: BLOB

BOOLEAN: BOOLEAN

CHAR: CHAR

CLOB: VARCHAR

CURRENCY: DECIMAL

DATE: DATE

DATETIME: DATETIME

DECIMAL: DECIMAL

DOUBLE: FLOAT

FLOAT: FLOAT

INT: INT

MEDIUMINT: MEDIUMINT

NCHAR: NCHAR

NUMBER: NUMBER

NVARCHAR: NVARCHAR

SMALLINT: SMALLINT

TEXT: TEXT

TIME: TIME

TIMESTAMP: TIMESTAMP

TIMESTAMP_NTZ: TIMESTAMP_NTZ

TINYINT: TINYINT

UUID: CHAR

VARCHAR: VARCHAR

XML: XML