2012-05-30 20 views
6

Para acceder a una base de datos, debe especificar los detalles de la base de datos en el archivo conf.Conéctese condicionalmente a una base de datos

Si la base de datos está funcionando todo funciona bien.

Si el DB está inactivo Play arroja una excepción, que no puedo controlar.

Me gustaría conectarme condicionalmente a una base de datos. Digamos que solo quiero conectarme a un DB si una bandera está configurada en alguna parte. ¿Hay una forma más manual de conectarse a un DB en Play?

Actualización: Supongo que no he sido muy claro.

Quiero que la aplicación no falle si el DB está inactivo y busca datos de otras fuentes alternativas. ¿Cómo puedo lograr esto en PLAY?

+0

¿Qué quiere decir por vía manual de más? Si lo desea, siempre puede recurrir a Jdbc o a la API de base de datos que desee. –

Respuesta

1

Supongo que desea iniciar su aplicación sin una base de datos para el desarrollo? Se puede pasar un archivo de configuración alternativa en el arranque en el que, por ejemplo, configurar una en dB de memoria:

start -Dconfig.resource=development.conf 

edición:

Puede configurar varias bases de datos en su configuración de aplicación y conseguir con DB.getDataSource(name: String) o conseguir una conexión a ella con DB.getConnection(name: String) o incluso ejecutar una transacción con DB.getConnection [a] (name: String) (f: Conexión => a)

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

+0

Lo que quiero es que Play se repliegue a una fuente de datos alternativa (una caché, por ejemplo) cuando falla la conexión a la base de datos. – rahul

+0

No creo que este sea un caso de uso muy común. A la inversa, no hay problema: http://www.playframework.org/documentation/2.0/ScalaCache Debería hacer que su base de datos esté altamente disponible. – drexin

+0

¿So Play proporciona muy poco control sobre la conexión DB? – rahul

Cuestiones relacionadas