Donc, la réponse définitive est :
Tout d'abord, il y a une erreur dans l'URL de la base de données, ce devrait être db.default.url="jdbc:postgresql://localhost:5432/playdb"
comme chabeee l'a souligné
. C'est le seul format correct pour db.default.url
(donc pas de jdbc:postgresql://username:pasword:localhost/dbname
ou similaire, comme je l'ai vu suggérer ailleurs).
Deuxièmement, plus délicat, il y a un bogue dans le pilote comme Salem l'a souligné
et la solution consiste à ajouter db.default.hikaricp.connectionTestQuery = "SELECT 1"
à application.conf
.
Cependant, ce bogue est corrigé (enfin, cette solution de contournement est implémentée) dans les versions plus récentes que 9.1-903
. Le hic, c'est qu'après la version 9.1-901
postgresql a changé son groupID dans les dépôts et maintenant il est référencé par org.postgresql
. Une meilleure solution que la solution de contournement serait de mettre à jour les dépendances vers "org.postgresql" % "postgresql" % "9.4-1206-jdbc4"
(version actuelle
, dépôt MVN
). Ajoutez la version jdbc appropriée au pilote PostgreSQL le plus récent (4
pour Java 6, 41
pour Java 7, 42
pour Java 8).
Mon dernier application.conf
:
db.default.driver="org.postgresql.Driver"
db.default.url="jdbc:postgresql://localhost/playdb" #the port is optional
db.default.username="luka"
db.default.password="test"
Et libraryDependencies
dans build.sbt
:
libraryDependencies ++= Seq(
jdbc,
"org.postgresql" % "postgresql" % "9.4-1206-jdbc42",
cache,
javaWs
)
MISE À JOUR 2017 : Je viens seulement de remarquer que peu de temps après avoir écrit cette réponse, ils ont changé le schéma de version et supprimé le fragment -jdbc[code], en le remplaçant par .jre6, .jre7 ou rien, ce qui signifie apparemment qu'il est destiné à la dernière version de Java (je n'ai pas trouvé quoi que ce soit à l'appui de cette affirmation, mais cela fonctionne). Encore une fois en février 2017, ils modifient à nouveau le schéma de version
et est passé de la version majeure 9 à 42, faisant de la version actuelle (au 17 juillet 2017) désignée par "org.postgresql" % "postgresql" % "42.1.3"
(ou, en conséquence, "org.postgresql" % "postgresql" % "42.1.3.jre7"
/ "org.postgresql" % "postgresql" % "42.1.3.jre6"
)