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

BeanCreationException:errore durante la creazione del bean con il nome 'flywayInitializer'

Sembra che il contenitore di test con il database sia stato avviato correttamente, quindi nessun problema, stai ricevendo un database vuoto.

Quindi provi a eseguire il flyway e questo non riesce. Flyway in Spring Boot funziona durante l'inizializzazione del contesto dell'applicazione primaverile, quindi la migrazione effettiva viene eseguita mentre il contesto dell'applicazione viene inizializzato, quindi l'errore di migrazione sembra un errore di primavera.

Il motivo, però, è registrato:il file di migrazione ha un contenuto non valido:

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

Questo GENERATED BY non è supportato.

Come mai? Probabilmente l'immagine della tua finestra mobile include la versione di RDBMS che non supporta questa sintassi. Quindi è diverso dal DB che usi in un ambiente locale senza docker.

In ogni caso non si tratta di docker, spring o flyway ma del DB e del codice di migrazione.

In termini di risoluzione, suggerisco di eseguire direttamente l'immagine docker del DB (senza java, testcontainer e flyway). Quando viene eseguita, esegui questa migrazione "manualmente" in pgadmin o qualcosa del genere. Dovresti visualizzare lo stesso errore.