LiquiBase
From Wikipedia, the free encyclopedia
| This article is an orphan, as few or no other articles link to it. Please introduce links to this page from related articles; suggestions may be available. (February 2009) |
|
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 |
[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 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.
[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>
[edit] See also
- openDBcopy
- dbdeploy
- dbmigrate
- migrate4j
- SQL Power Architect can generate liquibase.xml from data model.