LiquiBase
From Wikipedia, the free encyclopedia
| LiquiBase | |
|---|---|
| Latest release | 1.5 / January 2008 |
| OS | Cross-platform |
| Genre | Software development |
| License | GNU Lesser General Public License |
| Website | 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 |
[edit] Overview
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 are 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.
[edit] Major Functionality
- 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, Ant, Maven, Servlet container, or Spring
- Support for 10 database systems
[edit] Sample Change Log File
<?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>

