4
respostas

[Dúvida] Error creating bean with name 'flywayInitializer'

Criei o projeto no CentOS 9 usando Eclipse. Java 17 e Spring Boot 3. Já criei o BD e inseri um registro. Li e alterei. Criei o projeto server e iniciei o serviço Eureka. Já consegui fazer a projeto pagamentos se registrar no Eureka. Porém, depois de alguns ajustes no pagamentos, quando tento iniciar a aplicação, está apresentando o erro abaixo:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Found more than one migration with version 1 Offenders: -> /home/marcelo/Downloads/pedidos/target/classes/db/migration/V1__cria_tabela_pedidos.sql (SQL) -> /home/marcelo/Downloads/pagamentos/target/classes/db/migration/V1__criar_tabela_pagamentos.sql (SQL)

4 respostas

Marcelo, bom dia!

Verifique seus arquivos application.properties no microsserviço de pagamento e no de pedidos. Creio que possam estar direcionando para o mesmo banco de dados, por isso está dando conflito de versão no arquivo de migration.

Riquelme, boa tarde!

Infelizmente estão diferentes:

//-------------------------------

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/alurafood-pagamento?createDatabaseIfNotExist=true

spring.datasource.username=xxx

spring.datasource.password=xxx

spring.jpa.show-sql=true

spring.application.name=pagamentos-ms

eureka.client.serviceUrl.defaultZone=http://localhost:8081/eureka

server.port=0

spring.cloud.gateway.discovery.locator.enabled=true

//-------------------------------

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/alurafood-pedidos?createDatabaseIfNotExist=true

spring.datasource.username=xxx

spring.datasource.password=xxx

spring.jpa.show-sql=true

spring.application.name=pedidos-ms

eureka.client.serviceUrl.defaultZone=http://localhost:8081/eureka

server.port=0

spring.cloud.gateway.discovery.locator.enabled=true

o erro avisa bem certinho. vc tem duas migrations com o mesmo nome. para o flyway o nome do arquivo é o que está antes do . você tem dois V1

Resolvido. O projeto tem 3 migrations: V1__criar_tabela_pagamentos.sql V2__cria_tabela_pedidos.sql V3__cria_tabela_item_pedido.sql

Os dois últimos foram criados inicialmente como V1 e V2. Obrigado pela ajuda.