Estoy tratando de usar Flyway y jOOQ junto con Spring Boot ( spring-boot-starter-jooq y Flyway autoconfigurado, ambos manejados por Spring)
Mi problema es que la generación de código jOOQ se ejecuta antes de la migración de Flyway, por lo que jOOQ no ve los cambios realizados por Flyway.
Intenté configurar dependsOn para la tarea del generador de jOOQ en flywayMigrate , pero resulta que Flyway solo se ejecuta al inicio. El complemento Flyway Gradle no se aplica, por lo que no tengo ninguna tarea flywayMigrate .
Cuando intenté agregarlo a mi configuración de gradle siguiendo la guía oficial de Flyway:
apply plugin: "org.flywaydb.flyway" flyway { url = 'jdbc:postgresql://localhost:5432/myDb' user = 'myUsr' password = 'mySecretPwd' schemas = ['public'] }Obtengo una excepción:
java.lang.NoClassDefFoundError: org.flywaydb.core.internal.util.jdbc.DriverDataSource¿Qué estoy haciendo mal? ¿Cómo configuro esto para que funcionen bien juntos?
Tenga en cuenta que tengo el controlador PostgreSQL y Flyway Core como dependencia:
implementation "org.postgresql:postgresql:42.2.5" implementation "org.flywaydb:flyway-core"por lo que debería funcionar. Este es probablemente un problema de Gradle vs Flyway vs Spring, porque Flyway funciona cuando inicio mi aplicación Spring.