我们有一个 Spring boot Web 应用程序,其中 spring boot 版本是 1.5.6。将 AWS MySQL RDS 从 5.7.0 升级到 8.0.28 后,我们收到 liquibase 错误。我已将 pom.xml 中的 MySQL 连接器依赖项升级到版本 8.0.34,并将 liquibase-core 版本升级到 3.7.0。
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>3.7.0</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.34</version>
</dependency>
我添加了更改驱动程序类名称和休眠方言
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
我收到错误
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource
[org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is java.lang.ClassCastException: java.time.LocalDateTime cannot be cast to java.lang.String
请帮我解决这个问题
当 Liquibase 尝试执行包含更改集的更改日志时,通常会出现此问题,该更改集具有专为 String 类型设计的值属性,但却收到 LocalDateTime 类型。
1-检查更改日志文件:彻底检查您的 Liquibase 更改日志文件,以查明涉及强制转换或转换为字符串类型的任何更改集。请密切注意预期为 String 但遇到 LocalDateTime 或其他不兼容类型的属性。 2-调整更改集:一旦确定了麻烦的更改集,请进行必要的调整以适当地处理 LocalDateTime 或其他类型。这可能需要修改数据类型或在更改集中实现转换。