SQLcl Projects vs. Liquibase: A Comparison
For the past two years, I’ve been using Liquibase (open-source version) to manage database objects in my Oracle APEX projects. Since I work exclusively with the Oracle database, I never had to explore Liquibase’s support for other databases.
But in O...
regenberg-tech.hashnode.dev6 min read
Hi Patrizia and Arvid,
I love seeing people with Liquibase backgrounds excited about SQLcl Projects! 😊
Just a few thoughts…
Regardless of whether you're using Liquibase, SQLcl Projects, or another tool, changes always need to be applied to a DEV database first to ensure validity and correctness. Some teams follow a structured process—writing Liquibase changelogs/sets to apply changes systematically across environments. While this approach ensures consistency, I often find it introduces too much structure too soon.
How often have you created tables or other objects, only to rename or completely rework them multiple times? In general, I recommend focusing on feature development first and committing the final changes to the repo when you're ready.
That said, many in the community advocate for a "file-based" approach. We’ve made this easy for soft objects, and in a future post, I’ll demonstrate how SQLcl Projects can handle hard objects and custom DML as well.
To clarify, many developers expect to compare a feature branch (e.g., 'feature-123') with the branch it was based on (e.g., 'prod')—this aligns with feature branching. On the other hand, comparing 'dev' to 'prod' is more typical for "end-of-release" branching. I’ve blogged about this distinction here: danmcghan.hashnode.dev/feature-branches-vs-end-of…
Liquibase rollback has always been more of a "dev-grade" rollback—it shouldn't be relied on for production deployments.
If you take the app/DB offline for an upgrade, you always have the option to restore the database (even via Flashback). This is a true, production-grade way to revert changes. Roll-forward strategies are only necessary for online upgrades where reverting isn’t practical. I’ll blog about this soon too!