Quindi, la risposta definitiva è:
Innanzitutto, c'è un errore nell'URL del database, dovrebbe essere db.default.url="jdbc:postgresql://localhost:5432/playdb"
come chabeee ha sottolineato
. È l'unico formato corretto per db.default.url
(quindi no jdbc:postgresql://username:pasword:localhost/dbname
o simili, come ho visto suggerire in altri posti).
In secondo luogo, più complicato, c'è un bug nel driver come Salem ha sottolineato
e la soluzione alternativa è l'aggiunta di db.default.hikaricp.connectionTestQuery = "SELECT 1"
a application.conf
.
Tuttavia, quel bug è stato corretto (beh, questa soluzione alternativa è stata implementata) nelle versioni più recenti di 9.1-903
. Il problema è, dopo la versione 9.1-901
postgresql ha cambiato il suo groupID nei repository e ora è referenziato da org.postgresql
. Una soluzione migliore rispetto alla soluzione alternativa sarebbe aggiornare le dipendenze a "org.postgresql" % "postgresql" % "9.4-1206-jdbc4"
(versione corrente
, MVNrepository
). Aggiungi la versione jdbc appropriata al driver PostgreSQL più recente (4
per Java 6, 41
per Java 7, 42
per Java 8).
Il mio application.conf
finale :
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"
E libraryDependencies
in build.sbt
:
libraryDependencies ++= Seq(
jdbc,
"org.postgresql" % "postgresql" % "9.4-1206-jdbc42",
cache,
javaWs
)
AGGIORNAMENTO 2017: Ho notato solo ora che non molto tempo dopo aver scritto questa risposta hanno cambiato lo schema di controllo delle versioni e rimosso il frammento -jdbc[code], sostituendolo con .jre6, .jre7 o niente, apparentemente il che significa che è pensato per l'ultima versione di Java (non ho trovato qualcosa a sostegno di questa affermazione, ma funziona). Ancora una volta nel febbraio 2017 hanno cambiato nuovamente lo schema di versione
ed è passato dalla versione principale 9 alla 42, rendendo la versione corrente (al 17 luglio 2017) indicata da "org.postgresql" % "postgresql" % "42.1.3"
(o, di conseguenza, "org.postgresql" % "postgresql" % "42.1.3.jre7"
/ "org.postgresql" % "postgresql" % "42.1.3.jre6"
)