liquibaseとはデータベース変更を安全に管理する基本ツール共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
liquibaseとはデータベース変更を安全に管理する基本ツール共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


liquibaseとはデータベース変更を安全に管理する基本ツール

liquibaseはデータベースのスキーマ変更をコードとして管理できるオープンソースのツールです。変更内容を記述したファイルを databaseChangeLog として保存しそれをもとにデータベースへ反映します。開発チームが協力して作業しても環境ごとに同じデータベース構成を再現できる点が大きな利点です。

なぜ liquibase が必要になるのか背景を知りましょう。新しい機能を追加したりデータベースの設計を変更したりする作業は繰り返し発生します。手動で SQL を走らせると誰がいつ何を変更したか分からなくなることがあります。 liquibase はこの点を解決します。変更をファイルとして保存し履歴を追えるようにすることで作業の透明性と再現性が高まります。

主な用語

変更セットデータベースに適用する別の変更のまとまり
databaseChangeLog変更を記述するファイルの集合
update変更をデータベースへ適用する操作
rollback適用した変更を元に戻す操作

使い方の基本

まず Java が必要です。 liquibase は Java で動くため Java の実行環境を整えます。次に liquibase の CLI を入手します。設定ファイルで接続先データベースを指定し変更を記録したファイルをリポジトリで管理します。一般的な流れは次のとおりです。

1 変更ファイルを作成する

2 データベースへ適用する

実際にはコマンドで update を実行して変更を適用します。取り消したい場合は rollback を使います。環境を間違えて適用してしまった場合でも rollback で元に戻すことができます。

簡単な例

以下は単純な変更の例のイメージです。実際の運用では XML や YAML などの形式で記述します。

新しいテーブルの追加やカラムの追加などの変更を定義します
コードの保存変更内容はデータベース変更ログとしてリポジトリで管理します

重要なポイント

ポイント liquibase を使うと変更履歴を追跡でき複数環境の整合性が保てます。またロールバック機能により万が一の時にも元に戻せる安心感があります。初心者はまず changelog の基本を理解し小さな変更から練習していくと良いでしょう。

まとめ

liquibase はデータベース変更の管理をコード化する強力なツールです。プロジェクトの規模が大きくなるほどその恩恵は大きくなります。使い始めは難しく感じるかもしれませんが、基本の概念と用語を覚えれば徐々に実践的な運用が可能になります。


liquibaseの同意語

データベースマイグレーションツール
データベースのスキーマ変更を追跡・適用するツールの総称。Liquibaseはこの分野の代表的なオープンソースツールです。
スキーマ変更管理ツール
データベースの表・列・制約などの設計変更を、再現性を保って段階的に適用・記録する仕組みです。
データベース変更管理ツール
データベースの変更を追跡・管理し、環境間で同じ変更を再現できるようにするツールの総称です。
マイグレーションフレームワーク
データベースの変更作業をコード化して、バージョン管理と自動適用を支援する枠組みです。
データベーススキーマ管理ツール
データベースのスキーマ定義を管理し、環境間で整合性を保つためのツールです。
SQL変更自動適用ツール
SQLの変更を自動で適用できる機能を持つツールの総称です。
オープンソースDBマイグレーションツール
オープンソースとして公開され、DBのマイグレーションを実現するツール群の一種です。
バージョン管理されたデータベース変更ツール
データベースの変更履歴をバージョン管理して、再現性を高めるツールの総称です。
データベース更新管理ツール
データベースの変更・更新を一元管理・追跡するツールです。
データベースリビジョン管理ツール
DBのスキーマのリビジョン(版)を管理するツールです。
デプロイ時のDBスキーマ適用ツール
アプリをデプロイする際にDBスキーマを自動で適用するためのツールです。
変更ログベースのマイグレーションツール
changeLogと呼ばれる変更履歴を元にデータベースを更新するツールの総称です。
DDL自動化ツール
DDL(データ定義言語)の変更を自動的に適用・管理するツールのことを指します。

liquibaseの対義語・反対語

手動デプロイ
Liquibaseの自動化・変更履歴管理を使わず、手動でデータベースへ変更を適用する運用のこと。
SQLスクリプトのみの変更管理
Liquibaseの変更セットを使わず、直接SQLスクリプトだけでスキーマ変更を管理・適用する方法。
チェンジログなしの運用
変更内容の履歴を記録するチェンジログを用いない運用スタイル
自動マイグレーション不使用
デプロイ時に自動でマイグレーションを走らせず、手動で変更を適用する運用。
変更履歴の自動追跡なし
Liquibaseのような変更履歴を自動で追跡・管理する機能を使わない状態。
マイグレーションツールを使わない運用
Liquibase以外のマイグレーションツールを使わず、あるいはツール自体を使わない運用。
直接データベース更新
アプリやCI/CDを介さず、直接データベースへ変更を適用する運用。

liquibaseの共起語

変更セット
Liquibaseでデータベースへ適用する最小の変更単位。idとauthorで一意に識別され、実行履歴はデータベースに保存されます。
チェンジログ
変更履歴を記録するファイル。XML・YAML・JSON・SQLの形式で複数の変更セットをまとめて管理します。
差分
現状のデータベースとチェンジログの差分。差分を基に新しいチェンジログを作成することがあります。
diffChangeLog
データベース間の差分をチェンログに変換する機能。新規変更を取得するのに使います。
update
チェンジログに従ってデータベースへ変更を適用する操作。実運用の主な実行コマンドです。
rollback
適用済みの変更を元に戻す操作。特定の変更セットや日付・回数で戻せます。
tag
現在のデータベース状態に印をつける機能。後でその位置へ戻すときに使います。
formattedSql
SQL形式のチェンログを使う設定。SQLの記述で変更を定義します。
XMLチェンジログ形式
XML形式のチェンログ。 などの要素で変更を記述します。
YAMLチェンジログ形式
YAML形式のチェンジログ。可読性が高い記述で変更を定義します。
JSONチェンジログ形式
JSON形式のチェンジログ。構造化されたデータで変更を表現します。
SQLチェンジログ形式
SQLファイルをチェンログとして利用する形式。任意のSQLを直接記述します。
データベース互換性
Liquibaseは複数のRDBMSをサポート。代表例は PostgreSQL, MySQL, Oracle, SQL Server, SQLite など。
PostgreSQL
オープンソースの高機能なRDBMS。Liquibaseはこのデータベースに対して変更を適用できます。
MySQL
広く使われるオープンソースRDBMS。Liquibaseでの変更適用をサポートします。
Oracle
企業向けRDBMS。LiquibaseはOracleにも対応しています。
SQL Server
MicrosoftのRDBMS。Liquibaseが主な変更を適用できます。
SQLite
軽量の組み込みDB。Liquibaseでの変更適用が可能です。
Mavenプラグイン
MavenビルドでLiquibaseの更新を実行するためのプラグインです。
Gradleプラグイン
GradleビルドでLiquibaseの更新を実行するためのプラグインです。
Docker
公式のLiquibaseイメージを使って環境を分離・再現性高く実行できます。
Liquibase Hub
変更セットの共有・監査・コラボレーションを可能にするクラウドサービスです。
CI/CD統合
継続的インテグレーション/デリバリーのパイプラインにLiquibaseを組み込み、DB変更を自動化します。
contexts
特定の実行コンテキストを指定して、環境ごとに異なる変更を適用します。
labels
チェンログの適用をグルーピングするラベル機能です。
preconditions
適用前に満たすべき条件を設定して、安全に変更を適用します。
runOnChange
チェンジログファイルの変更を検知して自動適用する設定。注意して使用します。
checksum
変更の整合性を検証するための値。過去の変更が改ざんされていないかを確認します。
clearCheckSums
すべてのチェクサムをリセットして再計算させるコマンドです。
generateChangeLog
現在のデータベースとチェンログとの差分から新しいチェンログを自動生成します。
updateSQL
updateの代わりに適用されるSQLを生成する機能。実行前に確認できます。
rollbackSQL
ロールバック用のSQLを生成する機能。

liquibaseの関連用語

Liquibase
データベースのスキーマ変更を管理するオープンソースツール。変更履歴を追跡・適用・ロールバックできる。
DatabaseChangeLog
XML/YAML/JSON/SQL形式でく、変更セットの集合体を格納するチェンログファイルの名称。
ChangeLog
変更を記述するファイル全般の呼び方。DatabaseChangeLogと同義で使われることが多い。
Changeset
変更の最小単位。データベースに適用する1つの変更を表し、idとauthorで一意に識別する。
id
Changesetを一意に識別する識別子。複数の変更セットを区別するために使われる。
author
Changesetを作成した人の名前。変更の責任者を示す属性。
include
他のチェンログファイルを読み込む指示。大きなチェンログを分割・組み合わせるときに使う。
includeAll
指定ディレクトリ内のすべてのチェンログを取り込む指示。
sqlFile
外部のSQLファイルを実行するための参照。大規模なSQLを切り出すときに便利。
sql
チェンセット内に直接書くSQL文。プラットフォーム依存のSQLをここに記述する。
preConditions
変更を適用する前に満たすべき条件を定義する。dbmsやデータ状態などを指定できる。
rollback
変更を元に戻すための手順を定義。ロールバック操作の実装に使う。
tag
データベースの現在の状態に名前付きのタグを付け、参照ポイントにする。
rollbackTag
特定のタグへロールバックするための参照。実務でロールバックを管理する際に使う場合がある。
runOnChange
チェンログファイルが変更されたときに、その変更セットを再度実行する設定。
runAlways
変更セットを常に実行する設定。特定の状況で有用な場合がある。
context
特定の実行文脈だけで変更セットを適用するための条件。環境分岐に利用。
labels
変更セットにラベルを付け、特定の条件でのみ適用するための分類機能。
dbms
特定のデータベース製品(例: MySQL、PostgreSQL など)のみに適用する条件。
relativeToChangeLogFile
ファイルパスの解決をチェンログファイルを基準にする設定。
defaultSchemaName
デフォルトのスキーマ名を指定する設定。
comment
変更セットの説明コメント。後から見返す際の補足情報として使われる。
checksum
変更セットの内容が改ざんされていないかを検証するためのハッシュ値。
clearCheckSums
すべての変更セットのチェックサムをリセットするコマンド。
update
チェンログの変更を実際にデータベースへ適用する実行コマンド。
updateSQL
適用されるSQLを生成して表示するコマンド(実行はしない)。
status
適用済み・未適用の変更セットを表示するコマンド。
validate
チェンログの構文と整合性を検証するコマンド。
diff
2つのデータベース間の差分を検出して差分チェンログを作成する機能。
diffChangeLog
差分から新しいチェンログを生成する機能。
snapshot
データベースの現在状態を取得して状態を記録する機能。
DATABASECHANGELOG
Liquibaseが適用済み変更を追跡する内部テーブル名。
DATABASECHANGELOGLOCK
Liquibase実行時の排他制御用ロックテーブル名。
liquibase.properties
CLIやプラグイン共通の設定を記述する設定ファイル。
Maven Plugin
MavenでLiquibaseを実行するための公式プラグイン。
Gradle Plugin
GradleでLiquibaseを実行するための公式プラグイン。
XML
チェンログの書き方のフォーマットの一つ。タグベースで表現する形式。
YAML
チェンログの書き方のフォーマットの一つ。人間に読みやすい表現形式。
JSON
チェンログの書き方のフォーマットの一つ。構造化データの表現形式。
SQL
チェンログをSQL形式で記述するフォーマット。主にSQLスクリプトを直接管理する場合に使われる。

liquibaseのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
15490viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2485viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1113viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1092viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
986viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
936viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
899viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
885viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
825viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
824viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
753viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
741viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
647viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
646viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
642viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
575viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
563viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
543viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
536viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
497viws

新着記事

インターネット・コンピュータの関連記事