Liquibase H2 ./mvnw liquibase:update 时出现“不支持的数据库文件版本或文件中的文件头无效”

问题描述 投票:0回答:1

我使用 jhipster 生成了一个应用程序,H2 数据库保留在磁盘上,当我使用 ./mvnw liquibase:update 时,我不断收到以下错误。

有谁知道问题出在哪里吗?

提前致谢,

朱利安

Caused by: liquibase.exception.DatabaseException: Connection could not be created to jdbc:h2:file:C:\Users\julie\IdeaProjects\myapps\app\target/h2db/db/app with driver org.h2.Driver. Make sure your H2 database is active and accessible by opening a new terminal window, run "liquibase init start-h2", and then return to this terminal window to run commands.  Version de fichier de base de données non supportée ou entête de ficher invalide dans le fichier "C:/Users/julie/IdeaProjects/myapps/app/target/h2db/db/app.mv.db"
Unsupported database file version or invalid file header in file "C:/Users/julie/IdeaProjects/myapps/app/target/h2db/db/app.mv.db" [90048-220]       
    at liquibase.database.jvm.JdbcConnection.open (JdbcConnection.java:91)
    at com.datical.liquibase.ext.database.jvm.ProJdbcConnection.open (Unknown Source)
    at liquibase.database.ConnectionServiceFactory.create (ConnectionServiceFactory.java:32)
    at liquibase.database.DatabaseFactory.openConnection (DatabaseFactory.java:218)
    at liquibase.database.DatabaseFactory.openConnection (DatabaseFactory.java:179)
    at liquibase.database.DatabaseFactory.openDatabase (DatabaseFactory.java:144)
    at liquibase.integration.commandline.CommandLineUtils.createDatabaseObject (CommandLineUtils.java:96)
    at liquibase.integration.commandline.CommandLineUtils.createDatabaseObject (CommandLineUtils.java:64)
    at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$null$1 (AbstractLiquibaseMojo.java:719)
    at liquibase.Scope.lambda$child$0 (Scope.java:187)
    at liquibase.Scope.child (Scope.java:196)
    at liquibase.Scope.child (Scope.java:186)
    at liquibase.Scope.child (Scope.java:165)
    at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$execute$2 (AbstractLiquibaseMojo.java:700)
    at liquibase.Scope.lambda$child$0 (Scope.java:187)
    at liquibase.Scope.child (Scope.java:196)
    at liquibase.Scope.child (Scope.java:186)
    at liquibase.Scope.child (Scope.java:165)
    at liquibase.Scope.child (Scope.java:256)
    at liquibase.Scope.child (Scope.java:260)
    at org.liquibase.maven.plugins.AbstractLiquibaseMojo.execute (AbstractLiquibaseMojo.java:632)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:342)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:330)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:175)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:76)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:163)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:160)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:910)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.apache.maven.wrapper.BootstrapMainStarter.start (BootstrapMainStarter.java:52)
    at org.apache.maven.wrapper.WrapperExecutor.execute (WrapperExecutor.java:161)
    at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:73)
Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Version de fichier de base de données non supportée ou entête de ficher invalide dans le fichier "C:/Users/julie/IdeaProjects/myapps/app/target/h2db/db/app.mv.db"
Unsupported database file version or invalid file header in file "C:/Users/julie/IdeaProjects/myapps/app/target/h2db/db/app.mv.db" [90048-220]       
    at org.h2.message.DbException.getJdbcSQLException (DbException.java:690)
    at org.h2.message.DbException.getJdbcSQLException (DbException.java:489)
    at org.h2.message.DbException.get (DbException.java:212)
    at org.h2.mvstore.db.Store.convertMVStoreException (Store.java:158)
    at org.h2.mvstore.db.Store.<init> (Store.java:142)
    at org.h2.engine.Database.<init> (Database.java:324)
    at org.h2.engine.Engine.openSession (Engine.java:92)
    at org.h2.engine.Engine.openSession (Engine.java:222)
    at org.h2.engine.Engine.createSession (Engine.java:201)
    at org.h2.engine.SessionRemote.connectEmbeddedOrServer (SessionRemote.java:338)
    at org.h2.jdbc.JdbcConnection.<init> (JdbcConnection.java:122)
    at org.h2.Driver.connect (Driver.java:59)
    at liquibase.database.jvm.JdbcConnection.open (JdbcConnection.java:83)
    at com.datical.liquibase.ext.database.jvm.ProJdbcConnection.open (Unknown Source)
    at liquibase.database.ConnectionServiceFactory.create (ConnectionServiceFactory.java:32)
    at liquibase.database.DatabaseFactory.openConnection (DatabaseFactory.java:218)
    at liquibase.database.DatabaseFactory.openConnection (DatabaseFactory.java:179)
    at liquibase.database.DatabaseFactory.openDatabase (DatabaseFactory.java:144)
    at liquibase.integration.commandline.CommandLineUtils.createDatabaseObject (CommandLineUtils.java:96)
    at liquibase.integration.commandline.CommandLineUtils.createDatabaseObject (CommandLineUtils.java:64)
    at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$null$1 (AbstractLiquibaseMojo.java:719)
    at liquibase.Scope.lambda$child$0 (Scope.java:187)
    at liquibase.Scope.child (Scope.java:196)
    at liquibase.Scope.child (Scope.java:186)
    at liquibase.Scope.child (Scope.java:165)
    at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$execute$2 (AbstractLiquibaseMojo.java:700)
    at liquibase.Scope.lambda$child$0 (Scope.java:187)
    at liquibase.Scope.child (Scope.java:196)
    at liquibase.Scope.child (Scope.java:186)
    at liquibase.Scope.child (Scope.java:165)
    at liquibase.Scope.child (Scope.java:256)
    at liquibase.Scope.child (Scope.java:260)
    at org.liquibase.maven.plugins.AbstractLiquibaseMojo.execute (AbstractLiquibaseMojo.java:632)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:342)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:330)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:175)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:76)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:163)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:160)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:910)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.apache.maven.wrapper.BootstrapMainStarter.start (BootstrapMainStarter.java:52)
    at org.apache.maven.wrapper.WrapperExecutor.execute (WrapperExecutor.java:161)
    at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:73)
Caused by: org.h2.mvstore.MVStoreException: The write format 2 is smaller than the supported format 3 [2.2.220/5]
    at org.h2.mvstore.DataUtils.newMVStoreException (DataUtils.java:996)
    at org.h2.mvstore.FileStore.getUnsupportedWriteFormatException (FileStore.java:944)
    at org.h2.mvstore.FileStore.processCommonHeaderAttributes (FileStore.java:547)
    at org.h2.mvstore.RandomAccessStore.readStoreHeader (RandomAccessStore.java:227)
    at org.h2.mvstore.FileStore.start (FileStore.java:917)
    at org.h2.mvstore.MVStore.<init> (MVStore.java:289)
    at org.h2.mvstore.MVStore$Builder.open (MVStore.java:2036)
    at org.h2.mvstore.db.Store.<init> (Store.java:133)
    at org.h2.engine.Database.<init> (Database.java:324)
    at org.h2.engine.Engine.openSession (Engine.java:92)
    at org.h2.engine.Engine.openSession (Engine.java:222)
    at org.h2.engine.Engine.createSession (Engine.java:201)
    at org.h2.engine.SessionRemote.connectEmbeddedOrServer (SessionRemote.java:338)
    at org.h2.jdbc.JdbcConnection.<init> (JdbcConnection.java:122)
    at org.h2.Driver.connect (Driver.java:59)
    at liquibase.database.jvm.JdbcConnection.open (JdbcConnection.java:83)
    at com.datical.liquibase.ext.database.jvm.ProJdbcConnection.open (Unknown Source)
    at liquibase.database.ConnectionServiceFactory.create (ConnectionServiceFactory.java:32)
    at liquibase.database.DatabaseFactory.openConnection (DatabaseFactory.java:218)
    at liquibase.database.DatabaseFactory.openConnection (DatabaseFactory.java:179)
    at liquibase.database.DatabaseFactory.openDatabase (DatabaseFactory.java:144)
    at liquibase.integration.commandline.CommandLineUtils.createDatabaseObject (CommandLineUtils.java:96)
    at liquibase.integration.commandline.CommandLineUtils.createDatabaseObject (CommandLineUtils.java:64)
    at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$null$1 (AbstractLiquibaseMojo.java:719)
    at liquibase.Scope.lambda$child$0 (Scope.java:187)
    at liquibase.Scope.child (Scope.java:196)
    at liquibase.Scope.child (Scope.java:186)
    at liquibase.Scope.child (Scope.java:165)
    at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$execute$2 (AbstractLiquibaseMojo.java:700)
    at liquibase.Scope.lambda$child$0 (Scope.java:187)
    at liquibase.Scope.child (Scope.java:196)
    at liquibase.Scope.child (Scope.java:186)
    at liquibase.Scope.child (Scope.java:165)
    at liquibase.Scope.child (Scope.java:256)
    at liquibase.Scope.child (Scope.java:260)
    at org.liquibase.maven.plugins.AbstractLiquibaseMojo.execute (AbstractLiquibaseMojo.java:632)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:342)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:330)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:175)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:76)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:163)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:160)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:910)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)

我在谷歌上寻找解决方案,找到类似的东西。

我还使用 jdl 生成了实体并再次运行该命令,但它也不起作用

maven h2 jhipster liquibase
1个回答
0
投票

The write format 2 is smaller than the supported format 3
表示您的数据库文件可以与H2 2.0或2.1一起使用,最好是2.1系列版本中的最新版本。

如果您想使用H2 2.2,您需要将数据库转换为新格式。

您可以使用标准程序,包括转储和恢复

org.h2.tools.Upgrade
实用程序(需要互联网连接或预先下载旧版本H2的jar)或第三方迁移工具

© www.soinside.com 2019 - 2024. All rights reserved.