Companion code for the Flyway vs Liquibase article: checksum validation, out-of-order and repeatable migrations, baselining an existing schema, Flyway Community's undo/diff/deploy stubs, concurrent-startup locking for both tools, Liquibase changeset identity and rollback (auto-generated vs explicit), a verified Liquibase 5.0.3 filename-caching defect, the new OSS license service, the FSL license change, and running both tools against one database. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Q6XdRjtsp4862EM44T7i9a
2.3 KiB
12. The OSS license service
← 11. Liquibase locking · Index · Next: 13. The FSL license change →
Chapter 7 found that Flyway Community gates certain commands behind
a runtime FlywayRedgateEditionRequiredException. Liquibase Community 5.0 shipped something new
alongside its license change (chapter 13): a liquibase.license
package, inside liquibase-core itself, that didn't exist in 4.x.
LiquibaseLicenseServiceTest
doesn't read about what that package does — it asks the actual service Spring Boot's
LiquibaseAutoConfiguration runs on top of, directly:
implementation: liquibase.license.OSSLicenseService
licenseIsInstalled(): false
licenseIsValid("any"): false
getLicenseInfo(): ""
(from docs/output/14-liquibase-oss-license-service.txt)
On the classpath this module uses — Community only, no Liquibase Pro artifact anywhere — the
license service Liquibase actually wires up is OSSLicenseService, which reports itself as
unlicensed and returns an empty license description. This test found no evidence of functional
gating anywhere in the classpath this module runs on: update(), rollback(), and every
changeset type this module exercises worked identically whether or not a license was present,
because none of them ever asked the license service anything. That's a meaningfully different
shape from Flyway's stub-and-throw pattern in chapter 7 — Liquibase
Pro's paid features live in separate, additional artifacts rather than as gated stubs inside the
Community jar.
Going deeper
- This test is a snapshot of Liquibase 5.0.3's Community classpath, not a guarantee about future releases — the license service's existence at all, brand new in 5.0, is itself evidence that Liquibase's commercial boundary is actively being redrawn (chapter 13 covers why).
- Liquibase Pro feature comparison (
rel="nofollow") — what Pro actually adds, as separate functionality rather than unlocked stubs.