

高岡智則
年齢: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スクリプトを直接管理する場合に使われる。



















