Does Liquibase calc checksums for changesets before or after applying property substitution when using XML only?

I have the following changeset and can’t find any docs about if the checksum is calculated before or after the property is substituted.

<changeSet author="[...]" id="[...]">
    <addColumn tableName="FOO">
        <column name="BAR" type="${type.string.max.80}" />

Though, there might be a difference because for SQL embedded into XML and YAML things are differently handled compared to e.g. external SQL files. But in my case I don’t have any plain SQL at all.

You can use property substitution with the sql and sqlFile Change Types. Note that Liquibase obtains the checksum of a sql changeset after substituting any properties you specify. However, it obtains the checksum of a sqlFile changeset before substituting the properties in the external SQL file.

So what’s the case for my XML-example?


I’d recommend running it twice with two different property values, and comparing the md5sum results in the databasechangelog table. That will tell you if it calculated before or after property substitution.