2014-11-24 15 views
9

Utworzyłem bazę danych z własnym programem i pojawiło się jako plik mydatabase.mv.db.Jak uzyskać dostęp do pliku * .mv.db bazy danych H2?

Ale kiedy próbowałem uzyskać dostęp do tej samej bazy danych z DbVisualizer, z podobno tymi samymi parametrami, utworzono dwa pliki mydatabase.lock.db i celebrity.h2.db i nie widziałem tabel, utworzonych w programie.

Jaka była niezgodność?

UPDATE

obie konfiguracje są następujące:

enter image description here

enter image description here

+0

Jakie są szczegóły połączenia używanego w programie i 'DbVisualizer'? – MadProgrammer

+0

Spróbuj i upewnij się, że ścieżka używa '/', a nie '\' (w 'DbVisualizer') – MadProgrammer

+0

Dla wygody dołącz"; IFEXISTS = TRUE ", aby uniknąć tworzenia fałszywych plików baz danych, zgodnie z sugestią [tutaj] (http://stackoverflow.com/a/2443685/230513). – trashgod

Odpowiedz

15

W wersji 1.3.x H2, plik bazy danych <databaseName>.h2.db jest domyślnym. (Wykorzystywany jest mechanizm magazynowania "PageStore").

W wersji H2 wersja 1.4.x plik bazy danych <databaseName>.mv.db jest domyślny. (Używany jest silnik pamięci masowej "MVStore"). MVStore jest nadal w fazie beta (listopad 2014). Możesz jednak wyłączyć MVStore, dodając ;mv_store=false do adresu URL bazy danych.

+0

Potrafię potwierdzić wersję h2 z "1.4.190", która utworzy ' .h2.db' zamiast' .mv.db' (nawet ustawiam 'MVCC = TRUE; MULTI_THREADED = TRUE' w adres jdbc). co muszę zrobić, to ustawić 'MC_STORE = TRUE', aby wymusić użycie h2' 'nazwa_bazy_danych> .mv.db'. – bob

+0

Myślę, że używasz starszej wersji 1.4.190 lub baza danych już istniała. Czy możesz to sprawdzić, uruchamiając 'select * from information_schema.settings gdzie nazwa taka jak '% BUILD%''? W wersji 1.4.190 otrzymasz dwukrotnie wynik "190" ('CREATE_BUILD' to kompilacja użyta do utworzenia bazy danych, a' info.BUILD_ID' to bieżąca wersja). Przy okazji jest to "MV_STORE", a nie "MC_STORE". –

+0

Przepraszam, wiem, że spowodowało to, że baza danych została wcześniej utworzona (bez MVCC = TRUE). jeśli istnieje ' .h2.db', ​​wydaje się, że h2 ponownie użyje starszego, a raczej utworzy nowy o nazwie' .mv.db'. – bob

2

Zaakceptowanych odpowiedź jest co najmniej kilka lat, ponieważ inni mogą być patrząc na bardziej „bieżącym” rozwiązanie ...

Aby zmusić go do pracy po prostu zaktualizować sterownik JDBC H2, który używa DBVizualizer. Zasadniczo pobierz "Zip niezależny od platformy" z http://www.h2database.com/html/download.html i skopiuj plik h2/bin/h2-X.X.X.jar do ~/.dbvis/jdbc/, a następnie uruchom ponownie DBVizualizer, aby mógł pobrać zaktualizowany sterownik.

Pamiętaj również o usunięciu .mv.db z nazwy pliku podczas ustawiania nazwy pliku bazy danych w DBVizualizer.

Powiązane problemy