Recently, I have used Liquibase in one of my projects and I have needed to create a boolean column. I have wondered what data type will the column have in my database. SQL Server has bit data type but does Liquibase takes advantage of it? And Oracle? What column will be created there?
I tried to find an answer to my questions in Liquibase documentation but I have found nothing there. Fortunately, Liquibase source code is available on the internet so I reviewed it and gathered data type mappings for SQL Server and Oracle. If you are looking for this information, enjoy!
Data types mapping in Liquibase 3.3.x (3.6.x is here)
Liquibase data type | SQL Server data type | Oracle data type |
bigint | bigint | number(38,0) |
blob | varbinary(max) | blob |
boolean | bit | number(1) |
char | char | char |
clob | nvarchar(max) | clob |
currency | money | number(15,2) |
datetime | smalldatetime or datetime2 | timestamp |
date | date or smalldatetime (version <= 2005) | date |
decimal | decimal | decimal |
double | float | float(24) |
float | float | float |
int | int | number(10) |
mediumint | mediumint | mediumint |
nchar | nchar | nchar |
nvarchar | nvarchar | nvarchar2 |
number | numeric | number |
smallint | smallint | number(5) |
time | time or datetime (version <= 2005) | date |
timestamp | datetime | timestamp |
tinyint | tinyint | number(3) |
uuid | uniqueidentifier | raw(16) |
varchar | varchar | varchar2 |
For other Liquibase articles, please read:
Database versioning - theory [video]
Database versioning part 2 - Liquibase - how to use [video]