Help with SQLite and liquibase.convertDataTypes

I am facing a problem related to liquibase.convertDataTypes:

I set

liquibase.convertDataTypes: false

in the file and the setting seems to be accepted correclty.

I have a liquibase xml script aimed to create a table containing also a “datetime” field in SQLite.

<column name="eventDate" type="${datetime}"><constraints nullable="false"/></column>

In the databasechangelog file there is a setting for property substitution:

<property dbms="sqlite" name="datetime" value="DATETIME"/>

With this setup I would expect that the SQL generated by liquibase is simply


while is

eventDate TEXT NOT NULL,;

What am I doing wrong?

Liquibase version is: 4.16.1

Important note: I know that DATETIME “doesn’t exist” in SQLite, but it is possible to create tables using this type name, and after SQLite engine does the conversion using the type affinity (Datatypes In SQLite, 3.3.1 Affinity Name Examples).

Another note: I see in the liquibase logs that only when db is sqlserver there is a line in the log telling that liquibase.convertDataTypes has found to be set to false, and this make me suspect that liquibase.convertDataTypes is ignored when db is not SQLServer. Possible?


Did the convert-data-types documentation provide any help with this? Would using addNotNullConstraint resolve the issue?