sql >> Databasteknik >  >> RDS >> PostgreSQL

BeanCreationException:Det gick inte att skapa bönor med namnet 'flywayInitializer'

Det ser ut som att testbehållaren med databasen har startat framgångsrikt, så inga problem där, du får en tom databas.

Sedan provar du att köra flygbanan och detta misslyckas. Flyway i fjäderstart fungerar under initieringen av fjäderapplikationskontexten, så den faktiska migreringen körs medan applikationskontexten initieras, så migreringsfelet ser ut som ett fjäderfel.

Anledningen loggas dock:migreringsfilen har ett ogiltigt innehåll:

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)
)

Denna GENERATED BY stöds inte.

Varför? Förmodligen innehåller din docker-bild versionen av RDBMS som inte stöder denna syntax. Så det skiljer sig från DB som du använder i en lokal miljö utan docker.

I vilket fall som helst handlar det inte om docker, spring eller flyway utan om DB och migrationskoden.

När det gäller upplösning, föreslår jag att köra docker-bilden av DB direkt (utan java, testcontainers och flyway). När den körs, kör bara den här migreringen "manuellt" i pgadmin eller något. Du förväntas se samma fel.



  1. Dela upp kolumnen i flera rader i Postgres

  2. SQL COUNT() för nybörjare

  3. Om du ställer in Oracle-storleken för radhämtningar högre gör min app långsammare?

  4. Hur returnerar man en resultatuppsättning/markör från ett anonymt Oracle PL/SQL-block som kör Dynamic SQL?