Konrad Garus
Konrad Garus

Reputation: 54045

Where are my H2 database files?

I'm just evaluating the H2 database... I downloaded and unpacked the installation and connect to a database at jdbc:h2:file:/home/konrad/test. /home/konrad is my home dir, test does not exist (I expect H2 to create it).

The console seems to work OK. I created a table and inserted a row to it. Even if I disconnect and reconnect the console, I can see and query the table.

However, I don't see the file I expected. Where is it?

Upvotes: 29

Views: 43803

Answers (2)

Shiran Gabriel
Shiran Gabriel

Reputation: 450

Your database files can be found in your user directory. For windows

C:\Users\<userName>

Take a look at H2's FAQ, You can find more information here

And in new versions of Spring, it's located simply in project root directory, like this :

spring boot db file location

And property is spring.datasource.url=jdbc:h2:file:./fileOrDbName

Upvotes: 12

Tomasz Nurkiewicz
Tomasz Nurkiewicz

Reputation: 341003

Are you sure there is no:

/home/konrad/test.h2.db

file? If not, try this:

$ lsof -p `jps -ml | grep h2 | cut -d' ' -f1` | grep \.h2\.db$

What it does is it look for Java process of H2 console, grabs its PID and lists all open files of that process, filtering by H2 database extension. Of course you can use PID of any other Java process accessing this DB. If it is persisted on the disk, you can't miss it.

Upvotes: 17

Related Questions