Skip to content

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.sql

7.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テーブルに記録されたマイグレーションファイルは内容を修正したり削除したりすることができません。

誤ったマイグレーションを修正する必要がある場合は、新しいバージョンのマイグレーションファイルを作成して変更事項を適用します。

TIENIPIA QUALIFIED STANDARD