2012-05-30 4 views
6

Pour accéder à une base de données, il faut spécifier les détails de la base de données dans le fichier conf.Connexion conditionnelle à une base de données

Si la base de données est en place, tout fonctionne correctement.

Si la base de données est désactivée, Play déclenche une exception que je ne peux pas contrôler.

Je souhaiterais me connecter sous condition à une base de données. Disons que je veux seulement me connecter à une base de données si un drapeau est défini quelque part. Existe-t-il un moyen plus manuel de se connecter à une base de données dans Play?

Mise à jour: Je suppose que je n'ai pas été très clair.

Je souhaite que l'application ne tombe pas en panne si la base de données est hors service et récupère les données d'autres sources. Comment puis-je accomplir cela dans PLAY?

+0

Que voulez-vous dire par plus manuel? Si vous le souhaitez, vous pouvez toujours utiliser Jdbc ou l'API de base de données souhaitée. –

Répondre

1

Je suppose que vous voulez démarrer votre application sans DB pour le développement? Vous pouvez passer un fichier de configuration alternatif au démarrage où vous par exemple configurer une mémoire db:

start -Dconfig.resource=development.conf 

modifier:

Vous pouvez configurer plusieurs bases de données dans la configuration de votre application et les obtenir avec DB.getDataSource(name: String) ou obtenir une connexion avec à DB.getConnection(name: String) ou même exécuter une transaction avec DB.getConnection [a] (name: String) (f: Connexion => a)

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

+0

Ce que je veux, c'est que Play se replie sur une autre source de données (un cache par exemple) lorsque la connexion à la base de données échoue. – rahul

+0

Je ne pense pas que ce soit un cas d'utilisation très commun. L'inverse n'est pas un problème: http://www.playframework.org/documentation/2.0/ScalaCache Vous devriez plutôt rendre votre base de données hautement disponible. – drexin

+0

So Play fournit très peu de contrôle sur la connexion DB? – rahul