I’m still trying to guess at how Liquibase works, but what I’m seeing is:
A) when I NULL MD5SUMs (with SQL, since only selective), the next migration recalculates ~85% of them (at the start) but not the rest.
B) during liquibase:update when I requery the DB separately I’m seeing little change (is it all balled into a transaction?)
C) this doesn’t seem to be for every “[INFO] ChangeSet…” in the console output, but after MANY operations I’m seeing:
[INFO] Reading from DATABASECHANGELOG
This takes 46 seconds to run every time on my machine.
We are attempting to upgrade from LB v3 to v4, and I’m on a project with over 10,000 change sets, so this is nigh impossible.
The questions I can think of are:
- What triggers Liquibase v4 to reread from DATABASECHANGELOG?
- What options are there in mvn liquibase:update to reduce or eliminate those operations?
- Is there a separate LB operation to ONLY recalculate NULL checksums? (ie. separate the checksums and migrations runs)
- If I have to fork LB to get this to work in a reasonable manner, where should I start my search?