sql >> Database teknologi >  >> RDS >> PostgreSQL

BeanCreationException:Fejl ved oprettelse af bean med navnet 'flywayInitializer'

Det ser ud til, at testbeholderen med databasen er startet med succes, så der er ingen problemer, du får en tom database.

Så prøver du at køre flywayen, og dette mislykkes. Flyway in spring boot fungerer under initialiseringen af ​​fjederapplikationskonteksten, så den faktiske migrering kører, mens applikationskonteksten initialiseres, så migrationsfejlen ligner en fjederfejl.

Årsagen er dog logget:migrationsfilen har et ugyldigt indhold:

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

Denne GENERATED BY er ikke understøttet.

Hvorfor? Sandsynligvis indeholder dit docker-image den version af RDBMS, der ikke understøtter denne syntaks. Så den adskiller sig fra den DB, du bruger i et lokalt miljø uden docker.

Under alle omstændigheder handler det ikke om docker, spring eller flyway, men om DB'en og migrationskoden.

Med hensyn til opløsning foreslår jeg at køre docker-billedet af DB direkte (uden java, testcontainere og flyway). Når det kører, skal du bare køre denne migrering "manuelt" i pgadmin eller noget. Du forventes at se den samme fejl.



  1. Java SQL-FEJL:Relationstabelnavn eksisterer ikke

  2. Pivot i Oracle 11g

  3. Brug Firebase DB med lokal DB

  4. Opret en SSH-tunnel til MySQL-fjernadgang