From Wikipedia, the free encyclopedia
Jump to: navigation, search
Developer(s) Nathan Voxland
Stable release 3.0.7 / October 24, 2013 (2013-10-24)[1]
Development status Active
Written in Java
Operating system Cross-platform
Type Software development
License Apache License 2.0

Liquibase is an open source database-independent library for tracking, managing and applying database changes. It was started in 2006 to allow easier tracking of database changes, especially in an agile software development environment.


All changes to the database are stored in XML files and identified by a combination of an "id" and "author" tag as well as the name of the file itself. A list of all applied changes is stored in each database which is consulted on all database updates to determine what new changes need to be applied. As a result, there is no database version number but this approach allows it to work in environments with multiple developers and code branches.

Automatically creates DatabaseChangeLog Table and DatabaseChangeLogLock Table when you first execute a changeLog File.

Major functionality[edit]

  • Over 30 built-in database refactorings
  • Extensibility to create custom changes
  • Update database to current version
  • Rollback last X changes to database
  • Rollback database changes to particular date/time
  • Rollback database to "tag"
  • SQL for Database Updates and Rollbacks can be saved for manual review
  • Stand-alone IDE and Eclipse plug-in
  • "Contexts" for including/excluding change sets to execute
  • Database diff report
  • Database diff changelog generation
  • Ability to create changelog to generate an existing database
  • Database change documentation generation
  • DBMS Check, user check, and SQL check preconditions
  • Ability to split change log into multiple files for easier management
  • Executable via command line, Apache Ant, Apache Maven, servlet container, or Spring Framework.
  • Support for 10 database systems

Sample ChangeLog file[edit]

<?xml version="1.0" encoding="UTF-8"?>
            <dbms type="oracle"/>
    <changeSet id="1" author="alice">
        <createTable tableName="news">
            <column name="id" type="int">
                <constraints primaryKey="true" nullable="false"/>
            <column name="title" type="varchar(50)"/>
    <changeSet id="12" author="bob">
        <createSequence sequenceName="seq_news"/>
    <changeSet id="2" author="cpa" context="test">
        <insert tableName="news">
            <column name="id" value="1"/>
            <column name="title" value="Liquibase 0.8 Released"/>
        <insert tableName="news">
            <column name="id" value="2"/>
            <column name="title" value="Liquibase 0.9 Released"/>


External links[edit]

Related tools[edit]