Liquibase は、データベーススキーマの変更を追跡、管理、適用するためのデータベースに依存しないライブラリである。Liquibase は、特にアジャイルソフトウェア開発において、データベースの変更をより簡単に追跡できるようにするために2006年に開始された。 当初はApache Licenseにより提供されるオープンソースのソフトウェアだったが、2025年BSLに類似したプロプラエタリライセンスにライセンスが変更された。

概観 データベースへのすべての変更はテキストファイル(XML、YAML、JSONまたはSQL)に保存され、ファイル名と同様に「id」タグと「author」タグの組み合わせで識別される。適用されたすべての変更のリストが各データベースに保存され、すべてのデータベース更新時に参照され、どのような新しい変更が適用される必要があるかを判断する。その結果、データベースのバージョン番号はないが、このアプローチにより、複数の開発者やコードブランチが存在する環境でも機能するようになる。

Liquibase は、最初にChangeLogファイルを実行すると、自動的にDatabaseChangeLogテーブルとDatabaseChangeLog Lock テーブルを作成する。

主な機能

30以上の組み込みデータベースリファクタリング カスタム変更を作成するための拡張性 データベースを最新バージョンに更新 最後のX回の変更をデータベースにロールバック データベースの変更を特定の日時にロールバック データベースを「タグ」にロールバック データベースの更新とロールバックのためのSQLは、手動でレビューするために保存することができます。 スタンドアロンIDE とEclipseプラグイン 実行する変更セットを含む/除外するための 「コンテキスト」 データベース差分レポート データベースの差分変更履歴の生成 既存のデータベースを生成するための変更ログを作成する能力 データベースの変更ドキュメントの生成 DBMSチェック、ユーザーチェック、SQLチェックの前提条件 変更ログを複数のファイルに分割して管理しやすくする機能 コマンドライン、Apache Ant、Apache Maven、サーブレットコンテナー、またはSpring Framework経由で実行可能。 10種類のデータベースシステムをサポート

商用版 Liquibase(旧Datical) https://www.liquibase.com/blog/2020-05-19は、Liquibaseプロジェクトへの最大のコントリビューターであり、Liquibase Enterprise 開発者でもある。商用版はLiquibaseコア機能と追加機能を提供する。

変更予測:変更がデータに与える影響を判断するために、実行前に実行される変更を予測する。 企業の標準とポリシーを適用するルールエンジン。 データベースストアドロジックのサポート:関数、ストアドプロシージャ、パッケージ、テーブルスペース、トリガー、シーケンス、ユーザー定義タイプ、シノニムなど。 データベース比較を利用すると、2つのデータベーススキーマを比較して変更を識別し、それを変更ログに簡単に移動できる。 変更セットウィザードを使用すると、データベースに中立的な方法でデータベースの変更を簡単に定義およびキャプチャできる。 論理的な展開ワークフローをモデル化および管理するための展開計画ウィザード Jenkins 、Atlassian Bamboo、UrbanCode、CA Release Automation(Nolio)、Serena Release Automation、BMC Bladelogic、 Puppet 、 Chef 、およびSVN、Git 、TFS、CVSなどの一般的なソース管理システム全てのプラグイン

Liquibase Enterprise(旧称:Datical DB)を含むLiquibase製品は、アプリケーションリリースプロセスに関わるDBA、リリースマネージャ、DevOpsチーム、アプリケーションオーナー、アーキテクト、開発者に利用されている。Liquibase は、エラーや遅延を排除し、迅速なアジャイルリリースを可能にするために、アプリケーションコードと一緒にデータベーススキーマの変更をプログラム的に管理する。Liquibase商用版は、開発環境からテスト環境、本番環境に移行する際に、アプリケーションバージョン全体のデータ構造固有のコンテンツを管理するためのLiquibase Data Modelアプローチに基づいている。Liquibase Enterpriseは、デプロイ前に、どのような環境でもスキーマ変更の影響をプレビューすることで、リスクを軽減し、よりスムーズで迅速なアプリケーション変更を実現する。

Liquibase開発者のNathan Voxlandは、Liquibase(旧Datical)の幹部である。

Liquibase ChangeLogファイルのサンプル <?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>

関連ツール

Flyway alembic

外部リンク