2017-12-20 6 views
1

Wie kann ich Spring-Boot mit h2database konfigurieren, so dass es die Datenbank bei jedem Neustart wiederverwendet.Spring-Boot Persistente h2database im Dateisystem

Dies ist die einzige Linie, die ich in meinem application.properties

spring.jpa.database-Plattform-Datei haben = org.hibernate.dialect.H2Dialect

+0

, was du meinst "wieder verwendet Datenbank"? – reconnect

Antwort

1

Sie haben für spring.datasource.url ein Wert, der angibt, spezifizieren eine Dateisystem-DB. Sie können dies tun, indem Sie das Präfix jdbc:h2:file: verwenden.
Zum Beispiel könnten Sie diese Konfiguration verwenden, um die DB in einer mydb.mv.db Datei im db Ordner Ihres home Verzeichnis zu speichern:

spring.datasource.url = jdbc:h2:file:~/db/mydb 

Beachten Sie, dass spring.jpa.database-platform=org.hibernate.dialect.H2Dialect nicht erforderlich ist. Die URL und der H2 JDBC-Treiber, die sich zur Laufzeit im Klassenpfad befinden, sind ausreichend.

Beachten Sie auch, dass die Datenbank beim Start automatisch erstellt wird, wenn Sie eine eingebettete Datenbank (H2, HSQL oder Derby) verwenden.

Dies ist auch dann der Fall, wenn Sie in der JDBC-URL eine Datei als Datenbank angeben.

So die db zu vermeiden Neuerstellung bei jedem Frühjahr Boot-Startup, sollten Sie auch hinzufügen:

spring.jpa.hibernate.ddl-auto = update 

oder

spring.jpa.hibernate.ddl-auto = validate 
+0

Auch brauchen Sie 'spring.jpa.hibernate.ddl-auto = update' nicht' create-drop' – code

+0

Sie haben Recht. Ich werde diesen Punkt hinzufügen. – davidxxx

+0

Gibt es eine Möglichkeit, bei laufenden Tests neu zu erstellen? – Mcm

Verwandte Themen