2014-11-24 16 views
9

Ich habe Datenbank mit meinem eigenen Programm erstellt und es erschien als mydatabase.mv.db Datei.Wie auf die * .mv.db-Datei der H2-Datenbank zugreifen?

Aber wenn ich mit DbVisualizer, die gleiche Datenbank zuzugreifen versucht, mit scheinbar gleichen Parametern, erstellt es zwei Dateien mydatabase.lock.db und celebrity.h2.db und nicht sehen, Tabellen, in das Programm erstellt.

Was war die Inkompatibilität?

UPDATE

beide Setups sind folgende:

enter image description here

enter image description here

+0

Welche Verbindungsdetails verwenden Sie für Ihr Programm und 'DbVisualizer'? – MadProgrammer

+0

Versuchen Sie, sicherzustellen, dass der Pfad '/' und nicht '\' (in 'DbVisualizer') verwendet – MadProgrammer

+0

Fügen Sie'; IFEXISTS = TRUE' hinzu, um falsche Datenbankdateien zu vermeiden, wie hier vorgeschlagen (http://stackoverflow.com/a/2443685/230513). – trashgod

Antwort

15

In H2 Version 1.3.x, die Datenbankdatei <databaseName>.h2.db ist die Standardeinstellung. (Die Speicher-Engine "PageStore" wird verwendet).

In der H2-Version 1.4.x ist die Datenbankdatei <databaseName>.mv.db die Standardeinstellung. (Die Speicher-Engine "MVStore" wird verwendet). Der MVStore ist derzeit noch Beta (November 2014). Sie können den MVStore jedoch deaktivieren, indem Sie ;mv_store=false an die Datenbank-URL anhängen.

+0

Ich kann bestätigen, dass die '1.4.190' Version von h2 einen' .h2.db' anstelle von ' .mv.db' erzeugt (auch wenn ich' MVCC = TRUE; MULTI_THREADED = TRUE' eingestellt habe) jdbc URL). Was ich tun muss, ist 'MC_STORE = TRUE' zu setzen, um h2 zu zwingen,' .mv.db' Datei zu verwenden. – bob

+0

Ich denke, Sie verwenden eine ältere Version 1.4.190, oder die Datenbank existiert bereits. Könnten Sie das überprüfen, indem Sie 'select * von information_schema.settings ausführen, dessen Name wie '% BUILD%'' lautet? Mit Version 1.4.190 erhalten Sie zweimal '190' als Ergebnis (' CREATE_BUILD' ist der Build, der zum Erstellen der Datenbank verwendet wurde und 'info.BUILD_ID' ist die aktuelle Version). Übrigens ist es 'MV_STORE' nicht' MC_STORE'. –

+0

Entschuldigung, ich finde heraus, dass die Datenbank zuvor erstellt wurde (ohne MVCC = TRUE). Wenn der ' .h2.db 'existiert, scheint es, dass h2 den älteren wiederverwendet, anstatt einen neuen mit dem Namen' .mv.db' zu erstellen. – bob

2

Die akzeptierte Antwort ist jetzt schon einige Jahre alt und da andere für eine „aktuelle“ Lösung gesucht werden kann ...

Um es aktualisieren zu arbeiten nur die H2 JDBC-Treiber, DBVizualizer verwendet. Laden Sie den "Platform-Independent Zip" von http://www.h2database.com/html/download.html herunter und kopieren Sie die Datei h2/bin/h2-X.X.X.jar in ~/.dbvis/jdbc/ und starten Sie DBVizualizer neu, damit der aktualisierte Treiber abgerufen werden kann.

Stellen Sie außerdem sicher, dass Sie .mv.db aus dem Dateinamen entfernen, wenn Sie den Datenbankdateinamen in DBVizualizer festlegen.