Takže jednoznačná odpověď zní:
Nejprve je chyba v adrese URL databáze, měla by být db.default.url="jdbc:postgresql://localhost:5432/playdb"
jak chabeee upozornil
. Je to jediný správný formát pro db.default.url
(takže žádné jdbc:postgresql://username:pasword:localhost/dbname
nebo podobně, jak jsem viděl navrhovat na jiných místech).
Za druhé, složitější je, že je chyba v ovladači, jak Salem poukázal
a řešením je přidání db.default.hikaricp.connectionTestQuery = "SELECT 1"
na application.conf
.
Tato chyba je však opravena (no, toto řešení je implementováno) ve verzích novějších než 9.1-903
. Háček je po verzi 9.1-901
postgresql změnil své groupID v repozitářích a nyní na něj odkazuje org.postgresql
. Lepším řešením než toto řešení by byla aktualizace závislostí na "org.postgresql" % "postgresql" % "9.4-1206-jdbc4"
(aktuální verze
, MVNrepository
). Připojte příslušnou verzi jdbc k nejnovějšímu ovladači PostgreSQL (4
pro Java 6, 41
pro Java 7, 42
pro Java 8).
Moje poslední 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"
A libraryDependencies
v build.sbt
:
libraryDependencies ++= Seq(
jdbc,
"org.postgresql" % "postgresql" % "9.4-1206-jdbc42",
cache,
javaWs
)
AKTUALIZACE 2017: Teprve teď jsem si všiml, že nedlouho po napsání této odpovědi změnili schéma verzování a odstranili fragment -jdbc[code] a nahradili jej .jre6, .jre7 nebo nic, což zřejmě znamená, že je to určeno pro nejnovější verzi Java (nedělal jsem to našel něco podporující toto tvrzení, ale funguje to). V únoru 2017 opět znovu změnili schéma verzí
a přeskočil z hlavní verze 9 na 42, takže aktuální verze (k 17. červenci 2017) je označena "org.postgresql" % "postgresql" % "42.1.3"
(nebo podle toho "org.postgresql" % "postgresql" % "42.1.3.jre7"
/ "org.postgresql" % "postgresql" % "42.1.3.jre6"
)