TrustRadius Insights for Liquibase are summaries of user sentiment data from TrustRadius reviews and, when necessary, third party data sources.
Pros
Seamless Integration with CI/CD: Users have praised Liquibase for seamlessly integrating with CI/CD pipelines, ensuring automated and consistent deployments by applying necessary database changes alongside code updates. This feature streamlines the development process and enhances overall efficiency in managing database modifications during software releases.
Support for Multiple Databases: Customers have appreciated Liquibase's ability to support multi-type target databases, allowing them to efficiently work across diverse database environments. This flexibility enables users to adapt their workflows to different database technologies without facing compatibility issues or constraints.
Versatile File Format Support: Reviewers highlighted Liquibase's support for multiple file formats like JSON, XML, YAML, and SQL, which enhances usability and versatility in different development environments. By accommodating various file types commonly used in software projects, Liquibase offers developers the freedom to choose the format that best suits their preferences and project requirements while maintaining consistency in database management practices.
In developing our application, we use Liquibase to maintain and build our database structures. We use it to apply changes and additions to our database and keep track of the changes being made. Liquibase has allowed us to better maintain control over the evolution of our data structures.
Pros
Keeps a change log of all change made.
Has the ability to rollback when needed.
Easily document changes.
Cons
Make it easier to roll back changes.
Add a GUI to examine the change logs.
Continue the good work.
Likelihood to Recommend
It enables the team to track all changes made to the database. These changes can be stored in a repository and easily tracked within the Liquibase ecosystem.
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
Likelihood to Recommend
Based on my experience so far on using Liquibase in my current project, I have seen that Liquibase changelogs are version control where multiple team members and developers can work together on database and deployed automatically via CI/CD Pipeline integration using github actions and it applies same changelogs to all enviroments to remain in sync and avoid any enviroment drift. Also as Liquibase stores changelog audits in DATABASECHANGELOG table it helps in tracking purposes and to easily rollback any change . Whereas in some scenarios I feel that Liquibase have some drawbacks where if complex transformation between tables is not optimized for bulk data operations which eventually degrades database performance.
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.
Likelihood to Recommend
Our enterprise database had only one main code base for a long while. That code base was able to handle its own schema changes through a built-in ORM. However, we have added multiple applications and services that read and write to the database, and therefore need schema changes to the database as well. 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.
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.
Likelihood to Recommend
It is well suited for modernization efforts where there are multiple environments and lots of change. The service thrives in an area where there are technically sound engineers specifically in the infrastructure space who can deploy the service and troubleshoot. If a team has only DBA's who do not understand infrastructure side of house, this service will be a pain to stand up and could be even more of a pain to troubleshoot as there will be a knowledge gap between infrastructure and code deployment.
We use Liquibase to manage database schema changes across environments in a controlled, versioned, and automated manner. It addresses business problems like inconsistent schema deployments, manual errors, and lack of traceability. Our use case includes CI/CD integration for automated rollouts, tracking changesets in source control, and ensuring database compliance and rollback capability for multiple Oracle and other DBs.
Pros
Version-Controlled Database Migrations
Rollback and Change Auditing
Environment-Agnostic Deployments with Contexts and Parameters
Cons
Learning Curve for XML/YAML Syntax and Tags
Likelihood to Recommend
CI/CD Pipeline Integration for Schema Changes
VU
Verified User
Engineer in Engineering (Banking company, 10,001+ employees)
We use Liquibase to automate deployments to all types of databases. It is very useful for deploying the same changes in different environments, recording everything that has been modified and, above all, being able to perform rollback and audit on uploads to production. We haven't encountered any issues so far. All of them have been resolved through the community or with the product's own documentation.
Pros
Keep a comprehensive record of changes
Facilitate rollbacks
Abstract the change of database type, achieving easy automation
Cons
Calculate the rollback automatically
Likelihood to Recommend
Liquibase is suitable for all the automatic database changes your organization wants to make.
VU
Verified User
Engineer in Engineering (Financial Services company, 1001-5000 employees)
We are using Liquibase for database deployments for both Oracle and SQL server. This includes both DDL and DML statements with some DDL statements including the text of entire stored procedures
Pros
Has good logging
XML listing the files to run is relatively straightforward.
writing changes to the DATABASECHANGLOG table is helpful
Cons
Properly splitting statements for Oracle objects is very difficult to configure
Error messages are not that easy to interpret
Likelihood to Recommend
Liquibase does not seem to be very well suited for Oracle database scripts, especially for stored procedures.
We use Liquibase to enable CI/CD for Database Deployments. With the help of Liquibase we have improved our database deployment process. Some specific improvements are : 1. Faster deployments 2. Versioning of Database Code 3. Faster feedback to development process with help of policy checks 4. Quick and reliable rollback process 5. Better Audit of Database changes
Pros
Faster Deployments
Helps implement standards for database code development using policy checks
Better audit of the changes made to schema with help of tracking tables
Cons
Customizable Database changelog table
Likelihood to Recommend
Liquibase is very well suited for database schema management. It works great for any DDL/DML deployments, changes made to database are easy to manage, track or troubleshoot. It comes with a wide variety of Rollback options. Liquibase Policy checks are a great way to enforce standards around Database code development across organization and prevent any unexpected from being deployed.
VU
Verified User
Engineer in Engineering (Financial Services company, 10,001+ employees)
We needed a technical solution that would simplify and streamlined how we managed changes for different types of databases (both SQL and NoSQL), as data flows from and to various sources. In particular it was important that the solution would allow an easier way to rollback in case of problems and that it would put us on track to develop compliance with NoSQL databases
Pros
Support for a great variety of databases
Good documentation
Easy to integrate with existing systems
Cons
Customer support could be quicker
The user experience in using it has not always been consistent due to the CLI
Likelihood to Recommend
I would recommend Liquibase as a change management tool as it gave my data engineering team great flexibility in terms of which databases we could make it work with, plus giving us the confidence to try out changes in a dev environment that would mimic the production environment; even in the case of a problem in production, it was clear of to rollback (even though we didn’t need to). I would recommend using Liquibase in a company/team with the required skill set (software engineering, data engineering) already well established, otherwise there is a (small) learning curve required which might be problematic for some users.
VU
Verified User
Employee in Engineering (Consumer Services company, 5001-10,000 employees)