sql >> データベース >  >> RDS >> PostgreSQL

BeanCreationException:「flywayInitializer」という名前のBeanの作成中にエラーが発生しました

    データベースを含むテストコンテナが正常に開始されたようです。問題はありません。空のデータベースを取得しています。

    次に、フライウェイを実行しようとすると失敗します。スプリングブートのフライウェイは、スプリングアプリケーションコンテキストの初期化中に機能するため、実際の移行はアプリケーションコンテキストの初期化中に実行されるため、移行の失敗はスプリングの失敗のように見えます。

    ただし、理由はログに記録されます。移行ファイルに無効なコンテンツが含まれています:

    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などでこの移行を「手動で」実行するだけです。同じエラーが発生することが予想されます。



    1. 最後に挿入されたIDを取得する方法は?

    2. 他のpostgresqlスキーマにデータフレームを書き込むパンダ

    3. Django cache.set()が重複キーエラーを引き起こしている

    4. クエリを使用して、指定された2つの日付の間の月のリストを取得するにはどうすればよいですか?