Spring 启动:H2 数据库未保存到文件

Spring Boot: H2 database not saved to file

我正在尝试将一个 H2 内存数据库持久化到一个文件中 Spring 引导以重用其中的数据。

不幸的是,指定数据源的方式url像

spring.datasource.url = jdbc:h2:file:~/WeatherDB;FILE_LOCK=FS

(complete application.properties)

对我不起作用。我在硬盘上找不到任何由H2生成的文件(另外,重启服务器后保存的数据不可用)。

为了形象化这一点,我创建了一个示例项目,可以在 Bitbucket 上找到。

因此,如果应用程序是 运行 来自带有 gradle run 的 IDE 或从 jar 中打包后似乎没有什么区别。

需要什么配置选项来持久化和重用 H2 数据库?

更新:

我意识到在 http://localhost:8080/configprops 处有一个用于配置选项的执行器端点显示

"spring.datasource.CONFIGURATION_PROPERTIES": {

    "prefix": "spring.datasource",
    "properties": {
        "schema": null,
        "data": null,
        "xa": {
            "dataSourceClassName": null,
            "properties": { }
        },
        "separator": ";",
        "url": "jdbc:h2:file:~/WeatherDB",
        "platform": "all",
        "continueOnError": false,
        "jndiName": null,
        "sqlScriptEncoding": null,
        "password": "******",
        "driverClassName": "org.h2.Driver",
        "initialize": true,
        "username": "sa"
    }
},

但是我在硬盘上找不到文件WeatherDB,重启服务器后也找不到任何数据。

非常欢迎任何建议 ;-)

您的 application.properties 文件未被提取。替换

compile "org.springframework.data:spring-data-jpa:1.7.2.RELEASE"
compile "org.hibernate:hibernate-entitymanager:4.3.8.Final"

compile "org.springframework.boot:spring-boot-starter-data-jpa"

Table 由于架构迁移将其设置为更新而被删除已为我解决。

application.properties
spring.jpa.hibernate.ddl-auto=update