Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

Flyway エラー対処方法 1.空ではないスキーマでマイグレーション

Flyway の DBマイグレーションで、エラーが発生した場合の対処方法を書いていきます

バージョン

ブログ執筆時の製品バージョンは以下の通りです。

エラーの内容

Flyway.migrate() を実行すると、以下のスタックトレースが出力されました。

Exception in thread "main" org.flywaydb.core.api.FlywayException: Found non-empty schema(s) "public" but no schema history table.
 Use baseline() or set baselineOnMigrate to true to initialize the schema history table.
    at org.flywaydb.core.Flyway.lambda$migrate$0(Flyway.java:166)
    at org.flywaydb.core.FlywayExecutor.execute(FlywayExecutor.java:204)
    at org.flywaydb.core.Flyway.migrate(Flyway.java:128)
    at org.sample.Main.main(Main.java:13)

スキーマが空ではないのに、Flyway の履歴テーブルが存在しない、といった内容です。

エラーの原因

テーブルやシーケンスが存在するスキーマで、初回のマイグレーションを実行したことが原因でした。

対応方法

スキーマ(データベース)を空にすると、マイグレーションが成功しました。