Database GitOps
Deliver database changes and migrations the same way you ship application code.
Apply DevOps best practices for application development (such as collaboration, version control, and CI/CD tooling) to your database automation.
Use common Git workflows to manage change flows and make the state of your systems easily visible to your entire team.
The GitOps database problem
DevOps conversations often overlook databases because it can seem easier to just leave database changes alone. But failure to automate database changes creates bottlenecks in the delivery flow that can undermine the benefits of DevOps.
What is GitOps?
GitOps creates an operations management structure taking DevOps best practices used for application development (such as collaboration, version control, and CI/CD tooling) and applies them to infrastructure automation.
This structure means that common Git workflow techniques can be used to manage change flow, the expected state of the system is easily visible to the whole team, and the human and technical resources in the system are working in a common language–code.
Applying GitOps flow to the database
Liquibase solves these issues by helping teams fit the flow of database changes into a GitOps framework. The four common attributes of GitOps can be used to explain how this works.
Describe changes as code
Liquibase uses a control file, or changelog, to explicitly define the order and behavior of each change in a changelog file or set of changelog files. This is done through a combination of sequence and metadata.
Know exactly what the authors intended
Clearly identify changes and merge points
Understand what specific changes are applied
Desired state versioned in Git
Because our changelog files are plain text, they can be easily stored and versioned in Git (or your source control of choice). That means all familiar workflows and capabilities in Git can be used to effectively review, approve and manage them.
Pick specific versions of the file with ease
View change progressions over time
Track how changes were added or modified for audit purposes
Changes automatically applied
Liquibase lets you apply known, structured changes to all of your databases in a scripted, automated manner. And it gives you the flexibility to use whichever interface your team is most comfortable working with.
Our command line interface can be easily integrated into any automation tool capable of running a command shell
The official Liquibase container image works well for cloud-native environments - or create your own container images using our open source tool
Adapters for Maven, Spring, ANT, NodeJS, and other tools are also available
Automatically ensure systems matches defined state
Liquibase knows when changes are already present and just adds any missing changes. It also provides ways to automatically inspect databases to make sure they’re all in compliance.
Take snapshots of a database at a point in time
Compare actual database to snapshot to quickly identify any out-of-band changes
Ensure higher quality deployment
Minimize potential security implications
Get started with Liquibase today!
Learn why Liquibase is one of the most widely used tools for handling database change automation.