JHipster项目执行liquibase:update时H2数据库版本不支持错误求助
解决H2数据库「Unsupported database file version or invalid file header」错误的排查步骤
统一H2版本兼容性
先检查项目里H2数据库和Liquibase依赖的H2驱动版本是否一致。如果Liquibase用的驱动版本比创建数据库文件的H2版本低,就会触发这个错误。可以在pom.xml里统一指定H2版本,比如:<properties> <h2.version>2.2.224</h2.version> </properties>之后执行
./mvnw clean install更新依赖,再重新生成数据库文件。删除损坏/旧版本的H2文件
找到项目中持久化的H2文件(一般在target目录或你指定的磁盘路径下,后缀是.mv.db),直接删除这些文件,再重新运行./mvnw liquibase:update让Liquibase重新初始化数据库。很多时候是旧版本H2生成的文件,或者之前操作中断导致文件损坏。核对H2连接URL配置
检查application-dev.yml或application.yml里的H2连接URL格式是否正确,比如:url: jdbc:h2:file:./data/h2db;DB_CLOSE_ON_EXIT=FALSE;AUTO_RECONNECT=TRUE注意不要写错文件路径,也避免使用旧版本H2的废弃参数,这些都可能导致文件识别异常。
确认Liquibase的数据库类型配置
检查项目中liquibase.properties或相关配置里,数据库类型是否设置为h2。如果误设成其他数据库类型,Liquibase会用错误的逻辑处理H2文件,进而引发版本或头文件错误。清理Maven缓存后重新构建
执行./mvnw clean install -DskipTests清理项目构建缓存,重新下载所有依赖。有时候依赖冲突会导致H2驱动加载异常,间接引发这个文件识别问题。
内容的提问来源于stack exchange,提问作者julienKW
相关产品推荐
相关产品推荐

