7.1. Flyway概要およびファイル規則
7.1. Flyway概要
7.1.1. DDL管理原則
データベーススキーマのすべての変更はFlywayマイグレーションファイルを通じて管理します。
| 項目 | 規則 |
|---|---|
| スキーマ変更方法 | Flywayマイグレーションファイルのみ許可 |
| 手動DDL実行 | 禁止(本番DB直接変更不可) |
| マイグレーションファイル修正 | 適用完了したファイルは絶対に修正禁止 |
| ロールバック | 新しいマイグレーションファイルでロールバック処理 |
7.1.2. 依存関係
xml
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-database-postgresql</artifactId>
</dependency>Spring Boot BOMでバージョンを管理するため、別途のバージョン明示は不要です。
7.2. マイグレーションファイル規則
7.2.1. ファイル配置
src/main/resources/
└── db/
└── migration/
├── V1__create_users_table.sql
├── V2__create_orders_table.sql
├── V3__add_phone_to_users.sql
└── V4__create_documents_table.sql7.2.2. ファイル名規則
V{バージョン番号}__{説明}.sql| 構成要素 | 規則 | 例 |
|---|---|---|
| 接頭辞 | V(大文字) | V1, V10 |
| バージョン番号 | 順次整数 | 1, 2, 3 |
| 区切り文字 | __(アンダースコア2個) | |
| 説明 | snake_case、英語 | create_users_table |
| 拡張子 | .sql |
正しい例:
V1__create_users_table.sql
V2__create_orders_table.sql
V3__add_phone_to_users.sql
V4__create_idx_users_email.sql
V5__insert_initial_roles.sql誤った例:
V1_create_users.sql # アンダースコア1個(2個必要)
v1__create_users.sql # 小文字のv
V1__CreateUsers.sql # CamelCaseの使用
V1__ユーザーテーブル作成.sql # 日本語の使用7.2.3. バージョンナンバリング戦略
順次整数方式を使用します。
V1, V2, V3, ... V10, V11, ...- チーム規模が大きい場合や競合が頻繁な場合はタイムスタンプ方式も許可します:
V20260228100000__description.sql - プロジェクト初期に方式を決定し、一貫して維持します。
7.2.4. 修正禁止原則
絶対禁止
すでにflyway_schema_historyテーブルに記録されたマイグレーションファイルは内容を修正したり削除したりすることができません。
誤ったマイグレーションを修正する必要がある場合は、新しいバージョンのマイグレーションファイルを作成して変更事項を適用します。