3
respuestas

[Bug] Problema en la V3__create-table-pacientes

Al crear la V3 para crear la tabla de pacientes me da este error

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 Migration checksum mismatch for migration version 1 -> Applied to database : 319952062 -> Resolved locally : -10497907 Either revert the changes to the migration, or run repair to update the schema history.

Además, este es el script de mi V3 para la tabla pacientes, el DTO DatosDireccion es el mismo que en los videos explicados, aun no ha sido modificado Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidadagradezco por adelantado su ayuda y colaboracion

3 respuestas

Hola Christian,

Sí, hay un problema con la migración de Flyway. Flyway tiene una tabla de 'schema history' donde guarda información sobre las migraciones que se han ejecutado, incluyendo un checksum que se genera a partir del archivo de migración. Si el archivo de migración cambia después de que se ha ejecutado, el checksum en el archivo no coincidirá con el checksum en la tabla de 'schema history', lo que provocará este error.

En este caso, tienes dos opciones:

  1. Puedes revertir los cambios en el archivo de migración para que coincida con lo que se ejecutó originalmente. Esto puede no ser posible si no sabes cuál era el estado original del archivo.

  2. Puedes ejecutar el comando 'repair' de Flyway. Esto actualizará el checksum en la tabla de 'schema history' para que coincida con el checksum en el archivo de migración. Sin embargo, ten en cuenta que esto no ejecutará ninguna migración que no se haya ejecutado, sólo actualizará el checksum. Para hacer esto, puedes ejecutar el siguiente comando en tu terminal:

./mvnw flyway:repair

Por favor, ten en cuenta que estas soluciones asumen que estás bien con el estado actual de la base de datos y el archivo de migración. Si necesitas ejecutar alguna migración que no se haya ejecutado, tendrás que resolver eso de forma separada.

Espero que esto resuelva tu problema. Si no es así, por favor, proporciona más detalles para ayudarte a seguir investigando.

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Hola! Encontré la solucion a esto en el Discord:

Por defecto cuando tienes un camelCase jpa crea por convención de esta manera documento_identidad en la base de datos por ende no hace match al guardarlo.

En el application.properties, esta linea de codigo quita esa convencion:

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

Espero te sirva!

A mi me sirvió, gracias Alejandra.