2012-05-30 3 views
6

Per accedere a un database, è necessario specificare i dettagli del DB nel file conf.Connessione condizionale a un database

Se il DB è attivo, tutto funziona correttamente.

Se il DB è inattivo Play genera un'eccezione, che non posso controllare.

Vorrei connettermi condizionatamente a un DB. Diciamo che voglio solo connettermi a un DB se un flag è impostato da qualche parte. C'è un modo più manuale per connettersi a un DB in Play?

Aggiornamento: Immagino di non essere stato molto chiaro.

Voglio che l'App non fallisca se il DB è inattivo e preleva i dati da altre fonti alternative. Come posso realizzare questo in PLAY?

+0

che cosa si intende per modo più manuale? Se lo desideri, puoi sempre eseguire il fallback su Jdbc o qualsiasi altra API di database che desideri. –

risposta

1

Suppongo che vogliate avviare la vostra app senza DB per lo sviluppo? È possibile passare un file di configurazione alternativa all'avvio dove per esempio configura una in db di memoria:

start -Dconfig.resource=development.conf 

edit:

È possibile configurare diversi database nel vostro app config e farli con DB.getDataSource(name: String) o ottenere una connessione ad essa con DB.getConnection(name: String) o anche eseguire una transazione con DB.getConnection [a] (name: String) (f: Collegamento => a)

vedi: http://www.playframework.org/documentation/api/2.0/scala/index.html#play.api.db.DB $

+0

Quello che voglio è che Play ricada su una fonte alternativa di dati (una cache per esempio) quando la connessione DB fallisce. – rahul

+0

Non penso che questo sia un caso d'uso molto comune. Il contrario non è un problema: http://www.playframework.org/documentation/2.0/ScalaCache Si dovrebbe piuttosto rendere il proprio database altamente disponibile. – drexin

+0

Quindi Play offre un controllo molto limitato sulla connessione DB? – rahul