【发布时间】:2021-01-20 05:16:06
【问题描述】:
我们正在尝试通过build.gradle 依赖项升级我们的项目:
-
spring-boot 从版本
1.5.7到2.3.3 -
从版本
Gradle-4.8-all升级到Gradle-6.4.1-all
我们收到以下错误:
Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.internal.command.DbMigrate$FlywayMigrateException:
Migration V3__Sequence_Table.sql failed
---------------------------------------
SQL State : 42001
Error Code : 42001
Message : Syntax error in SQL statement "DELIMITER[*]
JDBC 连接 URL 前面提到过。
o.f.c.internal.database.DatabaseFactory : Database: jdbc:mysql://xxxxx:3306/mydb (MySQL 5.7)
现在已更改如下,
o.f.c.internal.database.DatabaseFactory : Database: jdbc:h2:mem:testdb (H2 1.4)
这是导致上述flyway迁移错误的原因吗?
【问题讨论】:
-
SQL Flyway 是否正在尝试执行特定于 MySQL 的操作? H2 数据库可能不兼容 MySQL 的所有 SQL 功能。看看这个stackoverflow.com/questions/53047481/… 和链接的问题。也许有帮助。
-
谢谢,@Sebastian。如 [stackoverflow.com/questions/40247283/… 中所述,尝试使用
spring.datasource.platform=mysql指定 MYSQL。但它没有锻炼。 -
您的项目中哪个数据库是正确的?您使用的是 MySQL 还是 H2?我真的不知道哪一个是正确的。
-
是的,它是 MySQL。 @塞巴斯蒂安
-
好的,您已将 JDBC URL 更改为
jdbc:h2:mem:testdb?
标签: mysql spring-boot gradle jdbc h2