TrustRadius: an HG Insights company

Liquibase

Score8 out of 10

116 Reviews and Ratings

What is Liquibase?

Liquibase is a database change management tool that extends DevOps best practices to the database, helping teams release software faster and safer by bringing the database change process into existing CI/CD automation. According to the 2021 Accelerate State of DevOps Report, elite performers are 3.4 times more likely to incorporate database change management into their process than low performers.

Liquibase value proposition:

  • Liquibase speeds up the development process by closing the velocity gap. By bringing CI/CD automation to the database, teams can code at full speed and break through the database bottleneck of manual reviews.

  • Boasting a 94% reduction in errors, Liquibase enables teams to deliver continuously with full confidence. Liquibase equips teams with the tools needed to monitor changes, audit databases, detect possible malware, and improve observability.

  • Liquibase empowers teams to collaborate. By treating database code like application code, Liquibase is designed to make it easier for app developers to work with the database team by automating tedious, manual, and error-prone processes.

  • Liquibase enables teams to scale deployments while also enforcing governance and stay compliant, so that they can deploy up to 3x more often.



Solutions Ideal for Cloud Native and Hybrid Data Applications


Liquibase Community

Liquibase Community provides developers the ability to treat database changes as code so that they can version and deploy them along with application code. The Liquibase Open Source project started in 2006, and now Liquibase Community has over 100M downloads.


Liquibase Secure

Liquibase Secure brings DevOps to the database, promoting database standardization, quality, and compliance within CI/CD automation across more than 60 database platforms. Built on the foundation of Liquibase Community, Liquibase Secure provides additional capabilities and services including:


  • Instant and consistent deployments across teams and projects with standardized database change workflows

  • Automated policy enforcement to enable continuous compliance, governance, and security

  • Advanced versioning and targeted rollback capabilities

  • Automatic drift detection to identify out-of-process changes and the source to take action and ensure the security of the data

  • Database workflow visibility with insights for optimization, triggered automation, governance, and security

  • Expert support and guidance from the creators of Liquibase

Opensource Liquibase

Use Cases and Deployment Scope

We have automated our database deployments using open-source Liquibase. Process helped reduce the need for DBA involvement during application releases, and provided the ability to tag and release DB artifacts as app artifacts.

Pros

  • Database change logs
  • Database change sets
  • Rollback
  • Easy integration with build tools
  • contexts

Cons

  • Multi schema automation
  • Stored procedure support
  • PLSQL block support
  • logging

Return on Investment

  • Quicker development of database artifacts
  • Easier tracking of DB changes
  • Easier and quicker rollback if needed
  • DB rollback testing

Other Software Used

ServiceNow DevOps, Splunk Enterprise, Dremio

Liquibase Review

Use Cases and Deployment Scope

We are currently using Liquibase in our project for handling any database management and version control activity changes on MySQL database server. This involves creating any database user or any other DDL and DML database transactions involving table, index creations along with modifying or altering existing tables/views/indexes. As part of our DevOps automation strategy it is integrated into our CI/CD pipelines using github actions pipeline deployments to manage schema changes across multiple environments from Dev to Stage and then to Prod in a controlled and repeatable way. Liquibase is helping in solving our few business problems that includes reducing any database changes deployment time, human prone errors and manual efforts to add database changes on various environments and helps in tracking all database changes as part of a well defined version control system and Liquibase tracks all the database changes in DATABASELOGCHANGE table it helps in tracking and auditing purposes.

Pros

  • Liquibase allows us to track every change made to the database schema using changelog files (XML, YAML, or SQL) where this change is tracked, auditable, and can be rolled back if needed from DATABASECHANGELOG table which eventually helps in being compliant and trackable which are mandatory in my company as we are part of a healthcare organization.
  • It helps in supporting deploying the same changelog across multiple environments (dev, staging, prod) without any manual intervention from CI/CD github actions pipeline.
  • It helps in comparing two database schemas and generate changelogs automatically to bring one in sync with the other using "Liquibase diffChangeLog" command

Cons

  • diff and diffChangeLog commands are powerfu in Liquibase to make two database schema in sync but can produce noisy or incomplete results, especially when comparing across different database types or versions.
  • If two developers create changes with the same id in different files, Liquibase will throw a conflict even if they’re for different modules, along with this changelog files can become large and difficult to organize.
  • While Liquibase supports rollbacks, they often require manual intervention fgor complex changes for example in data migrations or multi-step schema changes, rollback logic can be hard to write and maintain.
  • Currently liquibase have less integration with IDE's like Intellij or VSCode which makes sometime hard to manage changesets and scripts

Return on Investment

  • By using Liquibase it allows faster deployment cycle across environment where changes are automated and version-controlled, reducing deployment time by up to approx 70%.
  • Improved auditability and compliance where liquibase DATABASECHANGELOG table provide a complete audit trail.
  • Liquibase usage has drastically reduced database downtime with rollback capabilities and pre-deployment validation and helps in preventing bad schema changes from causing outages where in my current project estimated downtime reduction of 30–40%.
  • Observed a 60–70% reduction in production incidents related to schema mismatches or missing migrations.

Alternatives Considered

Redgate Flyway

Other Software Used

Redgate Flyway, DbVisualizer, MySQL Workbench

Liquibase DB version control made easy

Use Cases and Deployment Scope

Liquibase for version control of both Oracle Databases (version 12c to 19c) and Postgres. We are pairing it with Gitlab and our use so far has been leaps and bounds better than any previous solution we have used in the past. Version control on databases is always a pain, but with Liquibase, it has helped our team of over a dozen developers be able to control, validate, and not break each other's work in ways that no other tool has been able to do yet.

Pros

  • Amazing Documentation
  • Easy integration with existing CI/CD pipelines
  • Tags and snapshots make rollback a breeze.

Cons

  • for Linux installer, add to the script to add to PATH for executable
  • Reduce noise on CLI header and show on verbose flag

Return on Investment

  • SQL code overwrites by Devs in same packages reduced
  • Changelog more clear
  • Test and Dev Database Development has improved in quality and adoption

Alternatives Considered

Jenkins, GitHub and Atlassian Bitbucket

Other Software Used

GitLab, Oracle Database, VMware ESXi, VMware vCenter, Microsoft Visual Studio Code, Atlassian Jira, Todoist, Oracle WebLogic Server, Zabbix

Liquibase Pro Review

Use Cases and Deployment Scope

Our enterprise database had only one main code base for a long while. That code base was able to handle its own schema changes. However, as we have expanded, we now have multiple applications and services reading and writing to the database. It was no longer practical to use the original code base to manage schema changes. Liquibase has become our centralized schema-management system and has worked very well for us. It is flexible and extensible with a simple and effective design that makes changes easy to track for the DBA. If you are familiar with CLI, the learning curve is small. We now use it to track and apply changes across individual developer database instances, as well as for shared testing and production environments.

Pros

  • Liquibase tracks changes in a metadata table contained directly in the target database, making easy administration for the DBA.
  • Liquibase handles many validation tests out of the box, making it easy to choose which ones you want to include, with options for writing your own if you choose. This makes it robust and flexible in terms of validation before deployment.
  • Liquibase provides easy integration into deployment pipelines for CI/CD. We use it with GitHub for source control and Circle CI for validation and deployment pipelines.

Cons

  • One thing that is missing and really needed is tracking of how long a particular changeset took to apply. There is only one date stamp in the metadata table, and it reflects the end time of the changeset command. While most changes run in milliseconds, it is often crucial to know how long it took to create an index, or for a change that locks a table. Right now, I just have to monitor myself. In some cases I can do some rough math based on the Liquibase update report, but only on the run as a whole, not each individual change. Perhaps Liquibase could write a beginning entry to the DATABASECHANGELOG, with a begin time, and then update that entry with an end time when the command has finished.
  • The "One change per changeset" policy check isn't robust enough to be adequately used with Liquibase-formatted mySQL changelogs. In mySQL, you must drop and recreate stored logic objects. There is no ALTER option, so either the DROP and CREATE must go into the same changeset (triggering the policy check), or they must be managed in two changesets (meaning two to manage for each logical change). It seems a DROP and CREATE could be made a special case for this policy check.

Return on Investment

  • We are still in the early phases, where the costs are potentially greater than the benefit. Trying to get Liquibase integrated into a pipeline has taken time investment and required some trial and error.
  • We are still a relatively small shop with a relatively small number of schema changes (perhaps 1 every week or so). As such, we aren't at a place where we couldn't have managed control of this without a tool. However, there is no doubt that investing in a tool at this stage was the right move. Now we have established guidelines and a pattern for how to do schema changes in a way that will make things easily scalable as we continue to grow.

Other Software Used

GitHub, dbForge Studio (Edge), DBeaver, Jaspersoft Community Edition, Microsoft Visual Studio Code

My Experience using Liquibase

Use Cases and Deployment Scope

In a modernization effort for a federal client, we leveraged Liquibase to improve visibility and automation with the database deployments. We have multiple AWS Aurora PostgreSQL databases that have to maintain consistency through each environment. Liquibase helps us to track what data is in each environment and allows us to build once and deploy many. This has helped us to make a major improvement in transparency for our client while also building a consistent and repeatable process going forward as the databases get updated. We also are utilizing Liquibase for a database reconciliation effort to deploy changes into a newly created schema to reconcile data after a migration. Liquibase allows us to make these deployments which will normally take months to minutes. Truly enjoy the service.

Pros

  • Liquibase provides a clear error log that allows us to pinpoint what to troubleshoot.
  • The service does not deploy bad data, which helps us keep our databases clean.
  • Liquibase works with GitHub Actions as well as AWS Codebuild and AWS Lambda. The flexibility allows us to deploy the service in many different ways.

Cons

  • I would like Liquibase to explore all errors in the changelog files compared to one at a time. We spent a lot of time troubleshooting one error at a time versus having a batch log of errors in each file.
  • Understanding where to get support on things. I spent a lot of time researching externally to learn what the best practices were. Although I found some of the youtube videos helpful, I would like a little more of a technical support. This may be a feature with the paid tier, however, we leveraged open source.
  • Seeing more examples of how others use Liquibase and their usecases will be helpful. That way we can learn from each other which may help us improve on our own deployments.

Return on Investment

  • It has allowed us to deploy rapidly across many environments. Less drift in databases, more frequent deployments.
  • Left us with a single point of failure as Liquibase requires much technical expertise to deploy. Not that it is difficult, but many are weary of using it because it seems hard to understand. Therefore only myself on the team can solve issues and get things to work. If I leave for a week, deployments stop because no one else is technically versed in this service.
  • Everyone loves how Liquibase works in theory. It helps many to make deployments fast and traceable. However, the standup process is more difficult to grasp.

Other Software Used

AWS CodeBuild