/ / Spring Boot: database H2 non salvato su file - spring, spring-boot, spring-data, h2

Spring Boot: database H2 non salvato nel file - spring, spring-boot, spring-data, h2

Sto cercando di rendere persistente un DB in memoria H2 in un file con Spring Boot per riutilizzare i dati lì dentro.

Sfortunatamente, il modo per specificare l'URL dell'origine dati come

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

(proprietà.applicazioni complete)

non funziona per me. Non riesco a trovare un file generato da H2 da nessuna parte sul mio disco rigido (inoltre, i dati salvati non sono disponibili dopo aver riavviato il server).

Per visualizzarlo, ho creato un progetto di esempio che può essere trovato su bitbucket.

Con ciò, non sembra fare differenza se l'applicazione viene eseguita da un IDE con gradle run o dopo averlo confezionato dal barattolo.

Quale opzione di configurazione è necessaria per persistere e riutilizzare H2 DB?

Aggiornare:

Mi sono reso conto che esiste un endpoint dell'attuatore per le opzioni di configurazione su http://localhost:8080/configprops Questo mostra

"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"
}
},

Ma non riesco a trovare un file WeatherDB sul mio disco rigido né sono disponibili dati dopo aver riavviato il server.

Ogni suggerimento è ben accetto ;-)

risposte:

3 per risposta № 1

Il tuo application.properties il file non viene prelevato. Sostituire

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

con

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

0 per risposta № 2

La tabella viene eliminata a causa della migrazione dello schema che l'ha impostata per l'aggiornamento risolta per me.

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