PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

BeanCreationException:Erro ao criar bean com o nome 'flywayInitializer'


Parece que o contêiner de teste com o banco de dados foi iniciado com êxito, portanto, não há problema, você está obtendo um banco de dados vazio.

Em seguida, você tenta executar o flyway e isso falha. O Flyway na inicialização de mola funciona durante a inicialização do contexto do aplicativo de mola, portanto, a migração real é executada enquanto o contexto do aplicativo é inicializado, de modo que a falha de migração se parece com uma falha de mola.

O motivo, no entanto, está registrado:o arquivo de migração tem um conteúdo invá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 não é suportado.

Por quê? Provavelmente sua imagem docker inclui a versão do RDBMS que não oferece suporte a essa sintaxe. Portanto, difere do banco de dados que você usa em um ambiente local sem docker.

De qualquer forma, não se trata de docker, spring ou flyway, mas do banco de dados e do código de migração.

Em termos de resolução, sugiro rodar a imagem docker do banco de dados diretamente (sem java, testcontainers e flyway). Quando rodar, basta executar essa migração "manualmente" no pgadmin ou algo assim. Espera-se que você veja o mesmo erro.