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
36 lines
2.3 KiB
Markdown
36 lines
2.3 KiB
Markdown
# 12. The OSS license service
|
|
|
|
[← 11. Liquibase locking](11-liquibase-locking.md) · [Index](../README.md) · Next: [13. The FSL license change →](13-the-fsl-license-change.md)
|
|
|
|
Chapter [7](07-why-there-is-no-undo.md) found that Flyway Community gates certain commands behind
|
|
a runtime `FlywayRedgateEditionRequiredException`. Liquibase Community 5.0 shipped something new
|
|
alongside its license change (chapter [13](13-the-fsl-license-change.md)): a `liquibase.license`
|
|
package, inside `liquibase-core` itself, that didn't exist in 4.x.
|
|
[`LiquibaseLicenseServiceTest`](../src/test/java/com/ankurm/dbmigrations/liquibase/LiquibaseLicenseServiceTest.java)
|
|
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`](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](07-why-there-is-no-undo.md) — 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](13-the-fsl-license-change.md) covers why).
|
|
- [Liquibase Pro feature comparison](https://www.liquibase.com/liquibase-pricing) (`rel="nofollow"`) — what Pro actually adds, as separate functionality rather than unlocked stubs.
|