2013-04-13 8 views
19

Mam problemy z dostępem do bazy danych mem poprzez h2-browser w projekcie ramowym .Uzyskiwanie dostępu do bazy danych projektu odtwarzania za pomocą przeglądarki h2

Z poniższą konfiguracją, która według mnie jest poprawna (najwyraźniej nie!) Otrzymuję przeglądarkę h2, ale bez tabel (poza schematem), mimo że zastosowałem kilka migracji.

Czego mi tu brakuje? Z góry dziękuję.

conf/application.conf:

db.default.driver=org.h2.Driver 
db.default.url="jdbc:h2:mem:play" 
db.default.user=sa 
db.default.password="" 

conf

Odpowiedz

22

Kiedy używasz w-mem baz rzeczywiście jesteś z dostępem do dwóch różnych baz danych (choć z tej samej ścieżce). Masz dwa rozwiązania:

  1. Pierwszy z konsoli uruchomić gołą „Play” konsoli uruchom H2 przeglądarkę i wreszcie uruchomić aplikację (withinh tej samej konsoli play)
  2. Run H2 w server mode, dodatkowe beneffit z tego podejście polega na tym, że nie stracisz danych przy każdym ponownym uruchomieniu aplikacji, ponieważ DB jest zapisany w pliku. Następnie można uzyskać dostęp do tej bazy danych z wielu punktów (również z 'standalone' przeglądarce H @ lub innego GUI) ze ścieżką podobną do:

Unix (~ oznacza, że ​​katalog domowy)

db.default.url="jdbc:h2:tcp://localhost/~/some/path/to/MyPlayDB"

lub Windows

db.default.url="jdbc:h2:tcp://localhost/c:/some/path/to/MyPlayDB"

Zauważ, że dla uzyskania najlepszej wydajności w trybie produkcyjnym to przełącznik godny powrót do e jednak dla wersji deweloperskiej to rozwiązanie powinno być wystarczająco dobre (jeszcze szybsze niż na przykład MySQL)

+0

Wypróbowałem Twoje rozwiązanie 1, a tabele nadal się nie wyświetlają. Więc właściwą odpowiedzią na pytanie byłoby użycie rozwiązania 2? – nemoo

+0

@nemoo - po prostu testowane z zupełnie nową wersją 2.2.0 - pierwsze podejście działa zgodnie z wymaganiami _still_ – biesior

+2

Próbowałem także rozwiązania 1 i mam ten sam problem. Uruchamiam konsolę Play, uruchamiam przeglądarkę h2, loguję się na ekranie internetowym h2-browser. Następnie za pomocą tej samej konsoli uruchamiam "run". Podczas uzyskiwania dostępu do mojej witryny otrzymuję komunikat "Nie można połączyć się z bazą danych [domyślnie]". Czy czegoś brakuje? Ciąg połączenia to "jdbc: h2: mem: play" i używam Play 2.2.1 – according2me

16

Aby przeglądać zawartość bazy danych za pomocą H2 Web Console, uruchom konsolę internetową i aplikację Play za pośrednictwem konsola play:

  1. Początkowo wejść konsolę Odtwórz uruchamiając Typesafe Activator:
    ~/Projects/play-app $ activator
  2. Uruchom konsolę internetową:
    [play-app] $ h2-browser
    ta powinna otworzyć interfejs konsoli H2 w przeglądarce.
  3. Uruchom aplikację Odtwórz:
    [play-app] $ run
  4. Uzyskaj dostęp do aplikacji Odtwórz w przeglądarce. Spowoduje to, że aplikacja Play połączy się z bazą danych H2 w pamięci i zainicjuje ją z niektórymi domyślnymi danymi, jeśli takie istnieją.
  5. Zaloguj się do konsoli internetowej H2 w przeglądarce, aby sprawdzić zawartość bazy danych.Użyj następujących ustawień, które można zapisać (na przykład, jak Play-App In-Memory Database) na łatwy dostęp do nich ponownie później:
    • Kierowca Klasa: org.h2.Driver
    • JDBC URL: jdbc:h2:mem:play
    • Nazwa użytkownika: sa
    • Hasło: <blank>

Należy zauważyć, że powyższe ustawienia trzeba dopasować swoje rzeczywiste configurati na (db.default.url i tak dalej).

+0

To działa dla mnie! Dzięki ;-) –

Powiązane problemy