Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Duda] No me realiza migracion a base de datos mysql

Creo la carpeta db_migration con la clase V1__create-table-medicos.sql introduzco el codigo: create table medicos(

id bigint not null auto_increment,
nombre varchar(100) not null,
email varchar(100) not null unique,
documento varchar(12) not null unique,
especialidad varchar(100) not null,
calle varchar(100) not null,
barrio varchar(100) not null,
codigo_postal varchar(12) not null,
complemento varchar(100),
numero varchar(10),
estado char(100) not null,
ciudad varchar(100) not null,

primary Key(id)

);

y me da fallo al iniciar la aplicacion en la consola me indica lo siguiente: Detected failed migration to version 1 (create-table-medicos). Please remove any half-completed changes then run repair to fix the schema history. Need more flexibility with validation rules? Learn more: https://rd.gt/3AbJUZE 2025-06-25T09:22:31.941-06:00 INFO 17632 --- [api] [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2025-06-25T09:22:31.953-06:00 INFO 17632 --- [api] [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. 2025-06-25T09:22:31.958-06:00 INFO 17632 --- [api] [ restartedMain] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2025-06-25T09:22:31.984-06:00 INFO 17632 --- [api] [ restartedMain] .s.b.a.l.ConditionEvaluationReportLogger :

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2025-06-25T09:22:32.030-06:00 ERROR 17632 --- [api] [ restartedMain] o.s.boot.SpringApplication : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Failed to initialize dependency 'flywayInitializer' of LoadTimeWeaverAware bean 'entityManagerFactory': Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Validate failed: Migrations have failed validation Detected failed migration to version 1 (create-table-medicos). Please remove any half-completed changes then run repair to fix the schema history. Need more flexibility with validation rules? Learn more: https://rd.gt/3AbJUZE at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:326) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:954) ~[spring-context-6.1.21.jar:6.1.21] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625) ~[spring-context-6.1.21.jar:6.1.21] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.13.jar:3.3.13] at med.vol.api.ApiApplication.main(ApiApplication.java:10) ~[classes/:na] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.3.13.jar:3.3.13] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Validate failed: Migrations have failed validation Detected failed migration to version 1 (create-table-medicos). Please remove any half-completed changes then run repair to fix the schema history. Need more flexibility with validation rules? Learn more: https://rd.gt/3AbJUZE at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1806) ~[spring-beans-6.1.21.jar:6.1.21]

1 respuesta
solución!

Hola Estudiante, espero que estés bien!

Parece que estás enfrentando un problema con una migración fallida usando Flyway en tu aplicación Spring Boot. El mensaje de error indica que la migración a la versión 1 ha fallado y sugiere que elimines cualquier cambio a medio completar y luego ejecutes la reparación para corregir el historial del esquema.

Aquí tienes algunos pasos que podrías seguir para intentar resolver el problema:

  1. Revisar el archivo SQL: Asegúrate de que el archivo V1__create-table-medicos.sql no contenga errores de sintaxis. A veces, un pequeño error en el script SQL puede causar que la migración falle.

  2. Verificar el estado de la base de datos: Comprueba si la tabla medicos o cualquier otro cambio parcial ya existe en tu base de datos. Si es así, podrías necesitar eliminar esos cambios manualmente antes de intentar ejecutar la migración nuevamente.

  3. Reparar el historial de Flyway: Flyway tiene un comando repair que puedes usar para corregir el historial de migraciones. Para usarlo, puedes ejecutar el siguiente comando en tu terminal:

    ./mvnw flyway:repair
    

    Esto debería limpiar cualquier entrada de migración fallida en la tabla de historial de Flyway.

  4. Ejecutar la migración de nuevo: Después de reparar el historial, intenta ejecutar tu aplicación nuevamente para ver si la migración se completa correctamente.

  5. Configurar Flyway para ignorar errores: Si estás en un entorno de desarrollo y quieres que Flyway ignore ciertos errores de validación, puedes ajustar las propiedades de configuración de Flyway en tu archivo application.properties o application.yml. Sin embargo, ten cuidado con esto, ya que puede ocultar problemas que podrían surgir en producción.

Espero que estos pasos te sean de ayuda para resolver el problema con la migración. ¡Bons estudios!