開発元 | Nathan Voxland |
---|---|
最新版 | |
リポジトリ | ![]() |
プログラミング 言語 | Java |
対応OS | クロスプラットフォーム |
サポート状況 | Active |
種別 | ソフトウェア開発 |
ライセンス | Apache License 2.0 |
公式サイト | http://www.liquibase.org/ |
テンプレートを表示 |
Liquibase は、データベーススキーマの変更を追跡、管理、適用するためのオープンソースのデータベースに依存しないライブラリである。Liquibase は、特にアジャイルソフトウェア開発において、データベースの変更をより簡単に追跡できるようにするために2006年に開始された。
データベースへのすべての変更はテキストファイル(XML、YAML、JSONまたはSQL)に保存され、ファイル名と同様に「id」タグと「author」タグの組み合わせで識別される。適用されたすべての変更のリストが各データベースに保存され、すべてのデータベース更新時に参照され、どのような新しい変更が適用される必要があるかを判断する。その結果、データベースのバージョン番号はないが、このアプローチにより、複数の開発者やコードブランチが存在する環境でも機能するようになる。
Liquibase は、最初にChangeLogファイルを実行すると、自動的にDatabaseChangeLogテーブルとDatabaseChangeLog Lock テーブルを作成する。
Liquibase(旧Datical) [2]は、Liquibaseプロジェクトへの最大のコントリビューターであり、Liquibase Enterprise [3]開発者でもある。商用版はLiquibaseコア機能と追加機能を提供する。
Liquibase Enterprise(旧称:Datical DB)を含むLiquibase製品は、アプリケーションリリースプロセスに関わるDBA、リリースマネージャ、DevOpsチーム、アプリケーションオーナー、アーキテクト、開発者に利用されている。Liquibase は、エラーや遅延を排除し、迅速なアジャイルリリースを可能にするために、アプリケーションコードと一緒にデータベーススキーマの変更をプログラム的に管理する。Liquibase商用版は、開発環境からテスト環境、本番環境に移行する際に、アプリケーションバージョン全体のデータ構造固有のコンテンツを管理するためのLiquibase Data Modelアプローチに基づいている。Liquibase Enterpriseは、デプロイ前に、どのような環境でもスキーマ変更の影響をプレビューすることで、リスクを軽減し、よりスムーズで迅速なアプリケーション変更を実現する。
Liquibase開発者のNathan Voxlandは、Liquibase(旧Datical)の幹部である。 [7]
<?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="author1"> <createTable tableName="persons"> <column name="id" type="int" autoIncrement="true"> <constraints primaryKey="true" nullable="false"/> </column> <column name="name" type="varchar(50)"/> </createTable> </changeSet> <changeSet id="2" author="author2" context="test"> <insert tableName="persons"> <column name="id" value="1"/> <column name="name" value="Test1"/> </insert> <insert tableName="persons"> <column name="id" value="2"/> <column name="name" value="Test2"/> </insert> </changeSet></databaseChangeLog>