sql >> Base de Datos >  >> RDS >> PostgreSQL

BeanCreationException:error al crear un bean con el nombre 'flywayInitializer'

Parece que el contenedor de prueba con la base de datos se inició correctamente, así que no hay problema, está obteniendo una base de datos vacía.

Luego intenta ejecutar flyway y esto falla. Flyway en Spring Boot funciona durante la inicialización del contexto de la aplicación Spring, por lo que la migración real se ejecuta mientras se inicializa el contexto de la aplicación, por lo que la falla de migración parece una falla Spring.

Sin embargo, se registra el motivo:el archivo de migración tiene un contenido no válido:

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

Este GENERATED BY no es compatible.

¿Por qué? Probablemente, la imagen de la ventana acoplable incluya la versión de RDBMS que no admite esta sintaxis. Por lo tanto, difiere de la base de datos que usa en un entorno local sin ventana acoplable.

En cualquier caso, no se trata de docker, spring o flyway, sino de la base de datos y el código de migración.

En términos de resolución, sugiero ejecutar la imagen acoplable de la base de datos directamente (sin java, contenedores de prueba y ruta migratoria). Cuando se ejecute, simplemente ejecute esta migración "manualmente" en pgadmin o algo así. Se espera que vea el mismo error.