Skip to content

7.4. Flyway設定

7.4.1. application.yml

yaml
spring:
  flyway:
    enabled: true
    locations: classpath:db/migration
    baseline-on-migrate: false
    validate-on-migrate: true
    out-of-order: false
設定説明
enabledtrueFlyway自動実行を有効化
locationsclasspath:db/migrationマイグレーションファイルの配置場所
baseline-on-migratefalse既存DBへのbaseline自動適用を無効化
validate-on-migratetrueマイグレーションファイルの整合性検証
out-of-orderfalse順序を逸脱したマイグレーションを禁止

7.4.2. プロファイル別設定

yaml
# application-local.yml
spring:
  flyway:
    clean-disabled: false    # ローカルでのみcleanを許可
yaml
# application-prod.yml
spring:
  flyway:
    clean-disabled: true     # プロダクションでのcleanは絶対禁止
    baseline-on-migrate: false

必須

プロダクション環境でflyway:clean絶対に実行してはなりません。 clean-disabled: trueを必ず設定します。

7.4.3. Mavenプラグイン

CI/CDでマイグレーションを独立的に実行する場合や、jOOQ codegenの前にスキーマを適用する際に使用します。

xml
<plugin>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-maven-plugin</artifactId>
  <configuration>
    <url>jdbc:postgresql://localhost:5432/flowin</url>
    <user>flowin</user>
    <password>flowin1234</password>
    <locations>
      <location>filesystem:src/main/resources/db/migration</location>
    </locations>
  </configuration>
  <dependencies>
    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>${postgresql.version}</version>
    </dependency>
    <dependency>
      <groupId>org.flywaydb</groupId>
      <artifactId>flyway-database-postgresql</artifactId>
      <version>${flyway.version}</version>
    </dependency>
  </dependencies>
</plugin>
bash
# マイグレーション実行
mvn flyway:migrate

# マイグレーション状態確認
mvn flyway:info

# マイグレーション検証
mvn flyway:validate

TIENIPIA QUALIFIED STANDARD