2013-04-13 17 views
19

Ho difficoltà ad accedere al database mem tramite lo h2-browser su un progetto quadro Play.Accesso al database del progetto di riproduzione con h2-browser

Con la configurazione seguente, che ritengo sia quella corretta (apparentemente no!) Sto ottenendo un h2-browser, ma senza tabelle (oltre allo schema, cioè), anche se ho applicato alcune migrazioni.

Cosa mi manca qui? Grazie in anticipo.

conf/application.conf:

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

conf

risposta

22

quando si utilizzano i database in-mem in realtà si sta accedendo due database diversi (anche se con lo stesso percorso). Avete due soluzioni:

  1. Prima dalla console iniziare a nudo console 'play', eseguire h2-browser e, infine, eseguire la vostra applicazione (withinh stessa console play)
  2. Run H2 in server mode, beneffit aggiuntivo da questa approccio è fatto che non perderete i dati al riavvio di ogni app come DB è memorizzato nel file. Poi si può accedere a questo database da molti punti (anche da 'standalone' del browser H @ o qualche altro GUI) con il percorso simile a:

Unix (~ significa che la vostra home directory)

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

o Windows

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

si noti che per le migliori prestazioni in modalità di produzione è interruttore degno torna all'E mbedded mode, tuttavia per lo stadio di sviluppo tale soluzione dovrebbe essere sufficiente (ancora più veloce di un esempio MySQL)

+0

Ho provato la soluzione 1 e le tabelle non si presentano ancora. Quindi la vera risposta alla domanda sarebbe usare la soluzione 2? – nemoo

+0

@nemoo - appena testato con il nuovissimo Play 2.2.0 - il primo approccio funziona come richiesto _still_ – biesior

+2

Ho anche provato la soluzione 1 e ho lo stesso problema. Avvio Play Console, esegui h2-browser, accedi alla schermata web h2-browser. Quindi, utilizzando la stessa console, eseguo "run". Quando accedo al mio sito Web ottengo "Impossibile connettersi al database [impostazione predefinita]". Mi sto perdendo qualcosa? La stringa di connessione è "jdbc: h2: mem: play" e sto utilizzando Play 2.2.1 – according2me

16

Per esplorare il contenuto del database tramite lo H2 Web Console, avviare sia la console Web sia l'applicazione Play tramite lo stesso Giocare console:

  1. In un primo momento, immettere la console gioco eseguendo il Typesafe Activator:
    ~/Projects/play-app $ activator
  2. avviare la console web:
    [play-app] $ h2-browser
    Questo dovrebbe aprire l'interfaccia della console H2 nel tuo browser.
  3. Esegui l'app Play:
    [play-app] $ run
  4. Accedi all'app Play nel browser. Ciò farà sì che l'applicazione Play si connetta al database H2 in memoria e inizializzandola con alcuni dati predefiniti, se presenti.
  5. Accedere alla console Web H2 nel browser per ispezionare il contenuto del database.Utilizzare le seguenti impostazioni che è possibile salvare (per esempio, come Play-App In-Memory Database) per accedere facilmente in un secondo momento:
    • driver Classe: org.h2.Driver
    • JDBC URL: jdbc:h2:mem:play
    • Nome utente: sa
    • Password: <blank>

Si noti che le impostazioni di cui sopra hanno per abbinare i vostri configurazi effettivi on (db.default.url e così via).

+0

Questo funziona per me !! Grazie ;-) –

Problemi correlati