Liquibase

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Liquibase
開発元 Nathan Voxland
最新版
3.9.0 / 2020年5月14日 (4年前) (2020-05-14)[1]
リポジトリ ウィキデータを編集
プログラミング
言語
Java
対応OS クロスプラットフォーム
サポート状況 Active
種別 ソフトウェア開発
ライセンス Apache License 2.0
公式サイト http://www.liquibase.org/
テンプレートを表示

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

概観[編集]

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

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

主な機能[編集]

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

商用版[編集]

Liquibase(旧Datical) [2]は、Liquibaseプロジェクトへの最大のコントリビューターであり、Liquibase Enterprise [3]開発者でもある。商用版はLiquibaseコア機能と追加機能を提供する。

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

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

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

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
  1. ^ Liquibase Downloads”. Liquibase. 2020年5月29日閲覧。
  2. ^ https://www.liquibase.com/blog/2020-05-19
  3. ^ Liquibase Enterprise”. Liquibase. 2020年5月29日閲覧。
  4. ^ Database Forecast Tools for Change Management | Liquibase.com”. 2020年5月29日閲覧。
  5. ^ Liquibase Rules”. Liquibase. 2020年5月29日閲覧。
  6. ^ Our partners”. Liquibase. 2020年5月29日閲覧。
  7. ^ Liquibase Leadership”. Liquibase. 2020年5月29日閲覧。

外部リンク[編集]