java - flyway tutorial
ReparaciĆ³n de la ruta de rodadura con arranque de primavera (2)
Flyway Maven Plugin
Solo para agregar esta información a la respuesta de @Daniel
1.
...
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>4.1.0</version>
<configuration>
<url>jdbc:mysql://localhost:3306</url>
<user>root</user>
<password>root</password>
<schemas>
<schema>[your_schema]</schema>
</schemas>
</configuration>
</plugin>
...
2.
ruta de aviación mvn: limpio
3.
ruta de aviación mvn: reparación
PS .: si los pasos 2 y 3 no funcionan cambia el orden.
Más información sobre los objetivos de Maven: https://flywaydb.org/documentation/maven/
No entiendo muy bien lo que se supone que debo hacer cuando falla una migración al usar Flyway en un proyecto Spring Boot.
Activé Flyway simplemente agregando la dependencia de Flyway en mi pom.xml
. Y todo funciona bien. Los scripts de mi base de datos se migran cuando inicio la aplicación Spring Boot.
Pero tuve un error en uno de mis scripts y mi última migración falló. Ahora, cuando intento migrar, hay una "No coincidencia de suma de comprobación de migración". Normalmente, ejecutaría mvn flyway:repair
, pero como estoy usando Spring Boot, no debo usar el complemento Flyway Maven. Entonces, ¿qué se supone que debo hacer?
Hay varias formas de realizar una reparación en la base de datos. Personalmente prefiero la simple sentencia SQL.
Declaración SQL:
Simplemente borre la fila con la migración fallida. Después de eso puedes volver a ejecutar la migración.
Ejecutar flyway directamente
Puede instalar Flyway local y ejecutar la flyway repair
en la consola.
Utilice el complemento de Flyway Maven
Agregue el complemento de Flyway Maven a su pom y ejecute mvn flyway:repair
. No creo que esto contradiga el concepto Spring Boot.
Extender la bota de primavera
Spring Boot llamará a
Flyway.migrate()
para realizar la migración de la base de datos. Si desea más control, proporcione un@Bean
que implementeFlywayMigrationStrategy
.
En FlywayMigrationStrategy
puede llamar al método de migración o reparación desde flyway. Hay más información disponible en la Guía de referencia de Spring Boot .
No creo que la FlywayMigrationStrategy
de FlywayMigrationStrategy
en la aplicación sea el lugar correcto para reparar la base de datos. Una migración fallida es una excepción y debe manejarse fuera de la aplicación.