MCPcopy
hub / github.com/liquibase/liquibase

github.com/liquibase/liquibase @v5.0.3 sqlite

repository ↗ · DeepWiki ↗ · release v5.0.3 ↗
11,965 symbols 49,329 edges 1,488 files 1,988 documented · 17%
README

Liquibase Build and Test Nightly Release Quality Gate Status

Note: This repository's default branch is main. - Local clones/forks: run git branch -m master main && git fetch origin && git branch -u origin/main main - CI / scripts / docs: update any references to master (e.g., raw.githubusercontent.com/liquibase/liquibase/master/..., workflow triggers, submodules) to use main

Liquibase helps millions of developers track, version, and deploy database schema changes. It will help you to: - Control database schema changes for specific versions - Eliminate errors and delays when releasing databases - Automatically order scripts for deployment - Easily rollback changes - Collaborate with tools you already use

This repository contains the main source code for Liquibase Community. For more information about the product, see the Liquibase website.

Release Cadence and Access

At Liquibase, we believe great database change management starts with a community that can rely on a predictable and transparent release process. To support this commitment, and starting with version 5.0.2, we are providing two clear ways for the community to access updates and improvements:

  • Main Branch Builds on GitHub – Main branch builds are continuously published on GitHub, offering early access to the latest improvements and fixes as they are developed. These builds enable the community to test upcoming capabilities and provide feedback ahead of the next official release.
  • Quarterly Community Releases – Liquibase Community updates are released quarterly (Feb, May, Aug, Nov) providing stable, production-ready versions that allow teams to plan upgrades and maintenance with confidence. These releases are available through all standard distribution channels, including GitHub, Maven Central, package managers, container registries, and other official Liquibase Community distribution locations.

Together, these options ensure that teams can choose the path that best fits their needs - whether prioritizing stability through scheduled releases or engaging early with the latest innovations in Liquibase.

Build Access and Release Planning

  • Nightly builds: The latest Main branch build is available at https://github.com/liquibase/liquibase/releases/tag/nightly — download liquibase-nightly.tar.gz (Linux/macOS) or liquibase-nightly.zip (Windows). Updated automatically after each successful test run on main.
  • Latest Release: v5.0.2 — March 5, 2026 \ https://www.liquibase.com/download-community
  • Next Planned Release: May 15, 2026
  • Roadmap: \ https://github.com/orgs/liquibase/projects/3/views/9?layout=board

Liquibase Automation and Integrations

Liquibase Community has built-in support for a variety of databases. Databases that are not part of Liquibase Community require extensions that you can download for free. Here is the full list of supported databases.

Liquibase can be integrated with Maven, Ant, Gradle, Spring Boot, and other CI/CD tools. For a full list, see Liquibase Tools & Integrations. You can use Liquibase with GitHub Actions, Spinnaker, and many different workflows.

Install and Run Liquibase

System Requirements

Liquibase system requirements can be found on the Download Liquibase page.

An H2 in-memory database example for CLI

  1. Download and run the appropriate installer.
  2. Make sure to add Liquibase to your PATH.
  3. Copy the included examples directory to the needed location.
  4. Open your CLI and navigate to your examples/sql or examples/xml directory.
  5. Start the included H2 database with the liquibase init start-h2 command.
  6. Run the liquibase update command.
  7. Run the liquibase history command to see what has executed!

See also how to get started with Liquibase in minutes or refer to our Installing Liquibase documentation page for more details.

Documentation

Visit the Liquibase Documentation website to find the information on how Liquibase works.

Courses

Learn all about Liquibase by taking our free online courses at Liquibase University.

Want to help?

Want to file a bug or improve documentation? Excellent! Read up on our guidelines for contributing!

Contribute code

Use our step-by-step instructions for contributing code to the Liquibase project.

Join the Liquibase Community

Earn points for your achievements and contributions, collect and show off your badges, add accreditations to your LinkedIn. Learn more about the pathway to Legend and benefits. Enjoy being part of the community!

Liquibase Extensions

Provide more database support and features for Liquibase.

License

Liquibase Community is licensed under the Functional Source License (FSL).

Liquibase Secure has additional features and support and is commercially licensed.

LIQUIBASE is a registered trademark of Liquibase Inc.

Contact us

Liquibase Forum

Liquibase Blog

Get Support & Advanced Features

Publish Release Manual Trigger to Sonatype

  1. When a PO (Product Owner) or a Team Leader navigates to Publish a release from here -> https://github.com/liquibase/liquibase/releases/, the workflow from /workflow/release-published.yml job is triggered.
  2. When a release is triggered, the workflow file will stop after Setup step and an email will be sent out to the list of approvers mentioned in job manual_trigger_deployment. You can click on the link and perform anyone of the options mentioned in description.
  3. A minimum of 2 approvers are needed in order for the other jobs such as deploy_maven, deploy_javadocs, publish_to_github_packages, etc to be executed.
  4. When you view the GitHub PR, make sure to verify the version which is being published. It should say something like Deploying v4.20.0 to sonatype

Extension points exported contracts — how you extend this code

CleanUpCommandStep (Interface)
Interface implemented by CommandSteps when they need to execute clean up tasks (such as closing database connections, fl [15 …
liquibase-standard/src/main/java/liquibase/command/CleanUpCommandStep.java
CustomMdcObject (Interface)
Marker interface that identifies an object as a custom object used in MDC. The structured log formatter automatically re [12 …
liquibase-standard/src/main/java/liquibase/logging/mdc/CustomMdcObject.java
ChangeLogParser (Interface)
Defines the methods a class which is able to parse a Liquibase changelog file must support. Different parsers are able t [8 …
liquibase-standard/src/main/java/liquibase/parser/ChangeLogParser.java
ConfigurationValueConverter (Interface)
Used by ConfigurationDefinition#getCurrentConfiguredValue() to translate whatever object type a {@link Configura [6 implementers]
liquibase-standard/src/main/java/liquibase/configuration/ConfigurationValueConverter.java
AutoloadedConfigurations (Interface)
Marker interface for a class containing ConfigurationDefinition which should be auto-loaded at Liquibase startup [8 implementers]
liquibase-standard/src/main/java/liquibase/configuration/AutoloadedConfigurations.java

Core symbols most depended-on inside this repo

getCurrentScope
called by 1252
liquibase-standard/src/main/java/liquibase/Scope.java
append
called by 1141
liquibase-standard/src/main/java/liquibase/serializer/ChangeLogSerializer.java
toString
called by 766
liquibase-standard/src/main/java/liquibase/util/StringClauses.java
get
called by 593
liquibase-standard/src/main/java/liquibase/resource/ResourceAccessor.java
getLog
called by 505
liquibase-standard/src/main/java/liquibase/logging/LogService.java
getName
called by 471
liquibase-standard/src/main/java/liquibase/executor/Executor.java
contains
called by 433
liquibase-standard/src/main/java/liquibase/util/StringUtil.java
format
called by 431
liquibase-standard/src/main/java/liquibase/util/ISODateFormat.java

Shape

Method 10,291
Class 1,502
Interface 126
Enum 46

Languages

Java100%

Modules by API surface

liquibase-standard/src/main/java/liquibase/database/AbstractJdbcDatabase.java156 symbols
liquibase-standard/src/main/java/liquibase/database/core/MockDatabase.java145 symbols
liquibase-standard/src/main/java/liquibase/database/Database.java131 symbols
liquibase-standard/src/main/java/liquibase/changelog/ChangeSet.java109 symbols
liquibase-standard/src/test/java/liquibase/statement/ExecutablePreparedStatementBaseTest.java106 symbols
liquibase-standard/src/main/java/liquibase/change/ColumnConfig.java81 symbols
liquibase-standard/src/main/java/liquibase/snapshot/JdbcDatabaseSnapshot.java76 symbols
liquibase-integration-tests/src/test/java/liquibase/dbtest/AbstractIntegrationTest.java70 symbols
liquibase-standard/src/main/java/liquibase/changelog/DatabaseChangeLog.java67 symbols
liquibase-standard/src/main/java/liquibase/integration/commandline/Main.java65 symbols
liquibase-standard/src/main/java/liquibase/structure/core/Column.java61 symbols
liquibase-standard/src/test/java/liquibase/sqlgenerator/core/CreateTableGeneratorTest.java56 symbols

Dependencies from manifests, versioned

${project.groupId}:liquibase-cli
${project.groupId}:liquibase-core
${project.groupId}:liquibase-snowflake
${project.groupId}:liquibase-standard
com.github.marcosemiao.maven.plugins.shade.resource:maven-shade-merge-manifest-transformer0.0.3 · 1×
com.h2database:h22.4.240 · 1×
com.ibm.db2:jcc11.5.9.0 · 1×
com.microsoft.sqlserver:mssql-jdbc13.2.1.jre11 · 1×
com.mysql:mysql-connector-j9.7.0 · 1×
com.opencsv:opencsv
com.oracle.database.jdbc:ojdbc819.30.0.0 · 1×

Datastores touched

(mysql)Database · 1 repos
eformatDatabase · 1 repos
intuserdbDatabase · 1 repos
liquibase_demoDatabase · 1 repos
lbcatDatabase · 1 repos
liquibaseDatabase · 1 repos
mydbDatabase · 1 repos
dbDatabase · 1 repos

For agents

$ claude mcp add liquibase \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact