データベースを含むテストコンテナが正常に開始されたようです。問題はありません。空のデータベースを取得しています。
次に、フライウェイを実行しようとすると失敗します。スプリングブートのフライウェイは、スプリングアプリケーションコンテキストの初期化中に機能するため、実際の移行はアプリケーションコンテキストの初期化中に実行されるため、移行の失敗はスプリングの失敗のように見えます。
ただし、理由はログに記録されます。移行ファイルに無効なコンテンツが含まれています:
Migration V1__initial_user.sql failed
-------------------------------------
SQL State : 42601
Error Code : 0
Message : ERROR: syntax error at or near "GENERATED"
Position: 45
Location : db/migration/V1__initial_user.sql (/Users/villemossip/Desktop/GRP/GRP-
SAS/application/build/resources/main/db/migration/V1__initial_user.sql)
Line : 36
Statement : CREATE TABLE revinfo
(
rev INTEGER GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ),
revtstmp BIGINT,
PRIMARY KEY (rev)
)
このGENERATED BY
サポートされていません。
なんで?おそらく、Dockerイメージには、この構文をサポートしていないバージョンのRDBMSが含まれています。そのため、Dockerのないローカル環境で使用するDBとは異なります。
いずれにせよ、それはDocker、Spring、Flywayではなく、DBと移行コードに関するものです。
解像度の観点から、DBのDockerイメージを直接(Java、testcontainers、flywayなしで)実行することをお勧めします。実行する場合は、pgadminなどでこの移行を「手動で」実行するだけです。同じエラーが発生することが予想されます。