This repository contains links to documentation, sample files, and tips for evaluating Liquibase. This evaluation is intended for people interested in learning about the capabilities of Liquibase Pro.
Liquibase Pro enables best practices that are designed to remove friction from the flow of changes to databases. These practices ensure speed, quality, and governance within the change process.
Liquibase can be installed locally on Windows, Mac, or Linux platforms (e.g., a workstation or automation tool agent/runner) or invoked using our official Docker image.
To apply your Pro license key, follow the instructions here.
If you are unfamilar with Liquibase concepts, here is some information to get you started.
- Changeset: basic unit of database work
- Changelog: text file containing collection of changesets
- Tracking tables: tables created and maintained by Liquibase
Changelog formats can be mixed and matched as desired. Liquibase does not impose any file name requirements.
/
│ changelog.mongo.xml
│ changelog.relational.sql
│ changelog.relational.xml
│
├───changesets
│ changelog.ddl.sql
│ changelog.ddl.xml
│ changelog.mongo.js
Liquibase supports over 60 databases, including data warehouses, relational, and NoSQL.
A liquibase.properties file can be used for basic testing. However, it is strongly recommended that environment variables or a secrets manager extension be used for any scenario beyond that.
In general, Liquibase needs three pieces of information to connect to a database.
- JDBC URL: database connection string
- Username: typically a service account
- Password: typically stored within a vault
The exact information required may vary between individual database platforms. Consult the database documentation for specific details.
Command | Description | Documentation |
---|---|---|
connect | Test database connection | Link |
flow | Execute a Liquibase workflow | Link |
status | Show undeployed changes | Link |
update | Run changes against target database | Link |
history | Show deployed changes | Link |
rollback-one-update | Rollback the last or a specified update | Link |
checks | Show or view policy checks | Link |
Liquibase Pro can work with any automation tool which supports invoking command-line tools. Liquibase provides working examples for some popular automation platforms.
- Ansible Tower
- AWS CodeBuild
- Azure Dev Ops (build)
- Bitbucket Pipelines
- CircleCI
- GitHub Actions
- GitLab
- Jenkins
During a typical evaluation the following features are exercised.
- Policy Checks: similar to static code analysis, but geared more for database changes. can be customized by team, database, etc. Sample Regex and Python checks can be found here.
- Workflows: portable, database independent workflows to ensure consistency
- Targeted Rollback: rollback individual changesets
- Operation Reports: basic HTML reports used for auditing or troubleshooting
- Structured Logging: JSON formatted logs to feed into an observability tool for reporting (e.g., Datadog, Splunk, Grafana)
Sample flow files are included in this repository.
- Basic
- liquibase.flowfile.basic: basic flow
- Advanced
- liquibase.flowfile.base.yaml: common commands
- liquibase.flowfile.ci.yaml: flow for Continuous Integration
- liquibase.flowfile.cd.yaml: flow for Continuous Delievery
- Liquibase sales: https://www.liquibase.com/contact
Thank you for evaluating Liquibase Pro! We hope to be a part of your DevOps journey.