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" )