when using runAlways=“true” or runOnChange=“true” and executing a changeset multiple times, the deployment history only shows the last execution of this changeset but not all executions.
This confuses me a lot because as it is a history it should contain all deployments which actually happened into the database.
Also I have problems to imagine that in case of a deployment related audit this would not be a problem.
I am wondering if its working as intended or if this might be a problem.
Thanks in advance for any input.
(e.g. think of a simple view to reproduce my scenario. I am using Oracle so select * from dual)
Hi @roberthorn . This is working as intended in Liquibase OSS. The DATABASECHANGELOG table is not intended to provide an airtight history of Liquibase operations on a given database. Its sole purpose is to help Liquibase make decisions about whether to execute (or rollback) a changeset during a Liquibase update (or rollback). As such, the table is expected to hold information about the latest execution of a changeset and not EVERY execution of a changeset.
Our commercial product, Liquibase Pro, manages an additional table that serves the purpose you are describing.
Rollback history should be included in OSS, not just in the Pro version. In my opinion it’s a SHOWSTOPPER when Liquibase OSS doesn’t track Rollbacks which are DATABASE CHANGES !!! SHEESH!!!
Liquibase OSS is designed to support deployment automation plain and simple. It is not an auditing or reporting tool, rather a lightweight library with multiple integrations, interfaces and extensions to simplify the process of deploying the right changes in the moment regardless of your tech stack. This is how it’s worked for almost 20 years and community contribution has not indicated that full audit support is a required capability.