With boot 2.6.0-RC1
is was looking why flyway
config is still trying to find mysql
classes if I use {vendor}
placement. There's been PR's like #25173 which changes these things as mariadb
really is a different database than mysql
these days.
Would it be possible to change DatabaseDriver
to return correct id for mariadb
as I think it's coming from here https://github.com/spring-projects/spring-boot/blob/6b79d2860fd579bac802ce18ced15b2864070c9a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java#L81
As I think it's called from here https://github.com/spring-projects/spring-boot/blob/6b79d2860fd579bac802ce18ced15b2864070c9a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java#L291
Comment From: wilkinsona
It might be possible, but we'll have to tread carefully as I think there's quite a high risk of breaking something. For example, we already override what the JDBC metadata tells us in our Quartz and Spring Batch data source initializers to map mariadb
to mysql
as neither project provides schema scripts for MariaDB.
We can consider it for early in 2.7 so that there's plenty of time to get feedback and reconsider if necessary.
Comment From: jvalkeal
In dataflow we're dropping mysql
as flyway 8
which boot 2.6
uses doesn't support mysql 5.7
anymore and you can't really use mysql 8
as you'd need to bundle oracle's mysql
driver(can't do that) and mariadb
driver doesn't work with mysql 8
anymore.
I know that we have a workaround by placing mariadb related flyway classes under mysql
vendor in a classpath. This is probably scenario for everyone else as well.