我试图将H2内存数据库保存到一个带有Spring Boot的文件中,以重用那里的数据。
不幸的是,指定数据源网址的方式如
spring.datasource.url = jdbc:h2:file:~/WeatherDB;FILE_LOCK=FS
(complete application.properties)
对我不起作用。我无法在硬盘上找到H2生成的文件(重启服务器后,保存的数据也不可用)。
为了形象化,我创建了一个可以在Bitbucket上找到的示例项目。
有了这个,如果应用程序是从带有gradle run
的IDE运行,或者是从jar中打包后,它似乎没有什么区别。
持久化和重用H2 DB需要什么配置选项?
更新
我意识到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
,重启服务器后也无法获得任何数据。
非常欢迎任何建议; - )
答案 0 :(得分:3)
您的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"
答案 1 :(得分:1)
由于架构迁移设置而导致表格被删除,因此我将更新解决方案。
application.properties
spring.jpa.hibernate.ddl-auto=update