It makes me happy to say that yesterday for the first time I got a ‘create-table’ change running successfully using change-set and change-log entirely in the Clojure programming language. I am now onto optimizing the syntax for the end-user, which brings me to the topic of ‘logical-filepath’.
You would notice that changeset does not mandate a ‘filepath’, but changelog optionally allows to specify a ‘filepath’. On the other hand, the API liquibase.changelog.ChangeSet and liquibase.changelog.DatabaseChangeLog both need ‘filepath’ as arguments. I presume the XML parser supplies the ‘filepath’ to ChangeSet, and similarly to DatabaseChangeLog. When I run ‘update’ on the change-log I notice only the change-set’s filepath is updated into the ‘databasechangelog’ table, and the change-log’s filepath isn’t noticed anywhere in the database.
I want to understand the relation between the filepath mentioned in change-set and filepath mentioned in change-log. What happens when change-set’s filepath does not match change-log’s filepath? What happens when I modify (after having run ‘update’ on them already once) the filepath in change-set or change-log and run update/rollback commands?