Misleading log about skipping database object creation when starting a new node (due to ordering of Liquibase checks)

Description

Due to ordering of validation steps (pre-validation of all change set, then checking preconditions), if a DDL statement is not supported by a given database (vendor) and this changes is guarded by precondition with dbms (e.g. <not><dbms type="h2"></not>) than anyway pre-validation fails this DDL statement first, logging an entry about SQL incompatibility, while the intention was to not to run the DDL against this specific DB (as expressed in the precondition).
This is know Liquibase "feature":
http://forum.liquibase.org/topic/createsequence-fails-validation-even-with-preconditions
https://liquibase.jira.com/browse/CORE-508%C2%A0

Currenlty when starting Corda in the logs: grep "Skipping changeSet"

These suggest that something expected wasn't created, however these are optional change sets depending on db vendor.

The code solution would be to replace onValidationFail="MARK_RAN" with e.g. dbms="postgres,mssql",
dbms attirbute in changeSet element will disable this changest when running for not matching db vendore and there will be no misleading logs.

Alternatively we would need to documnet that some "Skipping changeSet ... due validation error(S):" is expected and it's not an error or misconfiguration.

Status

Assignee

Stefan Iliev

Reporter

Szymon Sztuka

Labels

None

Feature Team

Operational Experience

Story Points

1

Fix versions

None

Ported to...

None

Priority

Lowest

Sprint

None

Affects versions

Configure