28

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?

Tomasz Nurkiewicz
  • 334,321
  • 69
  • 703
  • 674
Konrad Garus
  • 53,145
  • 43
  • 157
  • 230

2 Answers2

17

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.

Tomasz Nurkiewicz
  • 334,321
  • 69
  • 703
  • 674
12

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

Maifee Ul Asad
  • 3,992
  • 6
  • 38
  • 86
Shiran Gabriel
  • 440
  • 4
  • 15