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
我正在尝试将一个 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