Så det definitiva svaret är:
För det första är det ett fel i databasens webbadress, den ska vara db.default.url="jdbc:postgresql://localhost:5432/playdb"
som chabeee påpekade
. Det är det enda korrekta formatet för db.default.url
(så ingen jdbc:postgresql://username:pasword:localhost/dbname
eller liknande, som jag har sett föreslå på andra ställen).
För det andra, mer knepigt, är att det finns en bugg i drivrutinen som Salem påpekade
och lösningen är att lägga till db.default.hikaricp.connectionTestQuery = "SELECT 1"
till application.conf
.
Den buggen är dock åtgärdad (ja, den lösningen är implementerad) i versioner som är nyare än 9.1-903
. Haken är efter version 9.1-901
postgresql ändrade sitt grupp-ID i repor och nu hänvisas till det av org.postgresql
. En bättre lösning än lösningen skulle vara att uppdatera beroenden till "org.postgresql" % "postgresql" % "9.4-1206-jdbc4"
(nuvarande version
, MVNrepository
). Lägg till lämplig jdbc-version till den senaste PostgreSQL-drivrutinen (4
för Java 6, 41
för Java 7, 42
för Java 8).
Min sista 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"
Och libraryDependencies
i build.sbt
:
libraryDependencies ++= Seq(
jdbc,
"org.postgresql" % "postgresql" % "9.4-1206-jdbc42",
cache,
javaWs
)
UPPDATERING 2017: Jag har först nu märkt att de inte långt efter att ha skrivit det här svaret ändrade versionsschema och tog bort -jdbc[code]-fragmentet och ersatte det med .jre6, .jre7 eller ingenting, vilket tydligen betyder att det är avsett för den senaste Java-versionen (jag har inte gjort det hittade något som stöder detta påstående, men det fungerar). Återigen i februari 2017 ändrade de versionsschemat igen
och hoppade från huvudversion 9 till 42, vilket gjorde att den nuvarande versionen (från och med 17 juli 2017) betecknas med "org.postgresql" % "postgresql" % "42.1.3"
(eller, följaktligen, "org.postgresql" % "postgresql" % "42.1.3.jre7"
/ "org.postgresql" % "postgresql" % "42.1.3.jre6"
)