Screenshot
Demonstration of the LiquiBase GUI |
|
Developer(s) | Nathan Voxland |
---|---|
Stable release | 2.0.0 / December 19, 2010 |
Development status | Active |
Written in | Java |
Operating system | Cross-platform |
Type | Software development |
License | Apache License 2.0 |
Website | http://www.liquibase.org/ |
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.
Contents |
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.
<?xml version="1.0" encoding="UTF-8"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.3 http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.3.xsd"> <preConditions> <dbms type="oracle"/> </preConditions> <changeSet id="1" author="alice"> <createTable tableName="news"> <column name="id" type="int"> <constraints primaryKey="true" nullable="false"/> </column> <column name="title" type="varchar(50)"/> </createTable> </changeSet> <changeSet id="12" author="bob"> <createSequence sequenceName="seq_news"/> </changeSet> <changeSet id="2" author="bob" context="test"> <insert tableName="news"> <column name="id" value="1"/> <column name="title" value="Liquibase 0.8 Released"/> </insert> <insert tableName="news"> <column name="id" value="2"/> <column name="title" value="Liquibase 0.9 Released"/> </insert> </changeSet> </databaseChangeLog>