Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

[Bug] Projeto não está rodando por causa de um erro do Flyway (alguém mais teve?) - Como resolver?

Alguém teve esse erro após criar os arquivos Controller, Repository, Dados de detalhamento, Dados agendamento para a consulta e a migration do banco de dados para criar a tabela?

Alguém sabe como resolver?

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2026-06-18T08:56:30.712-03:00 ERROR 34592 --- [api] [  restartedMain] o.s.boot.SpringApplication               : Application run failed

org.springframework.context.ApplicationContextException: Unable to start web server
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:52) ~[spring-boot-devtools-4.1.0-RC1.jar:4.1.0-RC1]
Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
    at org.springframework.boot.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:150) ~[spring-boot-tomcat-4.1.0-RC1.jar:4.1.0-RC1]
    at org.springframework.boot.tomcat.TomcatWebServer.<init>(TomcatWebServer.java:110) ~[spring-boot-tomcat-4.1.0-RC1.jar:4.1.0-RC1]
    at org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:429) ~[spring-boot-tomcat-4.1.0-RC1.jar:4.1.0-RC1]
    at org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:167) ~[spring-boot-tomcat-4.1.0-RC1.jar:4.1.0-RC1]
    at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:190) ~[spring-boot-web-server-4.1.0-RC1.jar:4.1.0-RC1]
    at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:164) ~[spring-boot-web-server-4.1.0-RC1.jar:4.1.0-RC1]
Caused by: org.flywaydb.core.api.exception.FlywayValidateException: Validate failed: Migrations have failed validation
Detected failed migration to version 7 (create-table-consultas).
Please remove any half-completed changes then run repair to fix the schema history.
Need more flexibility with validation rules? Learn more: https://help.red-gate.com/help/flyway-cli12/help_4.aspx?topic=flyway-blog/older-posts/customize-validation-rules-with-ignoremigrationpatterns
    at org.flywaydb.core.Flyway.lambda$migrate$3(Flyway.java:187) ~[flyway-core-12.4.0.jar:na]
    at org.flywaydb.core.FlywayExecutor.execute(FlywayExecutor.java:236) ~[flyway-core-12.4.0.jar:na]
    at org.flywaydb.core.FlywayExecutor.execute(FlywayExecutor.java:120) ~[flyway-core-12.4.0.jar:na]
    at org.flywaydb.core.Flyway.migrate(Flyway.java:181) ~[flyway-core-12.4.0.jar:na]
    at org.springframework.boot.flyway.autoconfigure.FlywayMigrationInitializer.afterPropertiesSet(FlywayMigrationInitializer.java:67) ~[spring-boot-flyway-4.1.0-RC1.jar:4.1.0-RC1]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1864) ~[spring-beans-7.0.7.jar:7.0.7]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1813) ~[spring-beans-7.0.7.jar:7.0.7]
    ... 93 common frames omitted


Process finished with exit code 0
2 respostas
solução!

Oi, Gabriel! Como vai?

Você está enfrentando um problema com o Flyway, especificamente com uma falha de validação das migrações. Esse erro geralmente ocorre quando há uma inconsistência entre o estado esperado do banco de dados e o que está realmente aplicado. Aqui estão algumas sugestões para tentar resolver o problema:

  1. Verifique a migração: dê uma olhada na sua migração que está falhando (create-table-consultas). Verifique se há algum erro de sintaxe ou inconsistência nos nomes das tabelas ou colunas em relação ao que já existe no banco de dados.

  2. Repare o histórico do esquema: O Flyway oferece um comando chamado repair que pode ajudar a corrigir o histórico do esquema. Você pode executar esse comando para tentar resolver inconsistências. Isso pode ser feito através da linha de comando com flyway repair ou configurando no seu projeto.

  3. Considere o estado do banco de dados: uma opção mais drástica seria limpar o banco de dados e aplicar todas as migrações novamente do zero. Isso pode ser feito em um ambiente de desenvolvimento, mas deve ser feito com cautela em produção.

Espero que essas dicas ajudem a resolver o problema com o Flyway. Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Olá, Armano tudo bem?

Fiz da seguinte forma:

  1. Apaguei a migration que o console estava acusando de dar erro;
  2. Reescrevi a Query de criação de tabela de Consultas;
  3. Rodei o seguinte comando no terminal para limpar o histórico de migrations que não foram bem-sucedidas: delete from flyway_schema_history where success = 0;
  4. Rodei o projeto e deu certo!

Resumindo: eu devo ter criado a migration enquanto o projeto estava em execução e ele retornou esse erro, como você bem apontou em Repare o histórico do esquema: O Flyway oferece um comando chamado repair que pode ajudar a corrigir o histórico do esquema. Você pode executar esse comando para tentar resolver inconsistências. Isso pode ser feito através da linha de comando com flyway repair ou configurando no seu projeto.

Muito obrigado pela ajuda!

Problema solucionado!