PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Riproduci Impossibile connettersi al database (PostgreSQL) [predefinito]

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