Liquibase
開発元 | Nathan Voxland |
---|---|
最新版 |
3.9.0
/ 2020年5月14日[1] |
リポジトリ | |
プログラミング 言語 | 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 テーブルを作成する。
主な機能
[編集]- 30以上の組み込みデータベースリファクタリング
- カスタム変更を作成するための拡張性
- データベースを最新バージョンに更新
- 最後のX回の変更をデータベースにロールバック
- データベースの変更を特定の日時にロールバック
- データベースを「タグ」にロールバック
- データベースの更新とロールバックのためのSQLは、手動でレビューするために保存することができます。
- スタンドアロンIDE とEclipseプラグイン
- 実行する変更セットを含む/除外するための 「コンテキスト」
- データベース差分レポート
- データベースの差分変更履歴の生成
- 既存のデータベースを生成するための変更ログを作成する能力
- データベースの変更ドキュメントの生成
- DBMSチェック、ユーザーチェック、SQLチェックの前提条件
- 変更ログを複数のファイルに分割して管理しやすくする機能
- コマンドライン、Apache Ant、Apache 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]、およびSVN、Git 、TFS、CVSなどの一般的なソース管理システム全てのプラグイン
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
- ^ “Liquibase Downloads”. Liquibase. 2020年5月29日閲覧。
- ^ https://www.liquibase.com/blog/2020-05-19
- ^ “Liquibase Enterprise”. Liquibase. 2020年5月29日閲覧。
- ^ “Database Forecast Tools for Change Management | Liquibase.com”. 2020年5月29日閲覧。
- ^ “Liquibase Rules”. Liquibase. 2020年5月29日閲覧。
- ^ “Our partners”. Liquibase. 2020年5月29日閲覧。
- ^ “Liquibase Leadership”. Liquibase. 2020年5月29日閲覧。