PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Play Kann keine Verbindung zur (PostgreSQL)-Datenbank herstellen [Standard]

Die eindeutige Antwort lautet also:

Erstens gibt es einen Fehler in der Datenbank-URL, sie sollte db.default.url="jdbc:postgresql://localhost:5432/playdb" lauten wie chabeee darauf hinwies . Es ist das einzig richtige Format für db.default.url (also kein jdbc:postgresql://username:pasword:localhost/dbname oder ähnlich, wie ich an anderen Stellen gesehen habe).

Zweitens, noch kniffliger, ist, dass es einen Fehler im Treiber gibt, wie Salem darauf hingewiesen hat und die Problemumgehung ist das Hinzufügen von db.default.hikaricp.connectionTestQuery = "SELECT 1" zu application.conf .
Dieser Fehler ist jedoch in neueren Versionen als 9.1-903 behoben (naja, diese Problemumgehung ist implementiert). . Der Haken ist, nach Version 9.1-901 postgresql hat seine groupID in den Repos geändert und wird jetzt von org.postgresql referenziert . Eine bessere Lösung als die Problemumgehung wäre das Aktualisieren der Abhängigkeiten auf "org.postgresql" % "postgresql" % "9.4-1206-jdbc4" (aktuelle Version , MVNrepository ). Hängen Sie die entsprechende jdbc-Version an den neuesten PostgreSQL-Treiber an (4 für Java 6, 41 für Java 7, 42 für Java 8).

Meine letzte 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"

Und libraryDependencies in build.sbt :

libraryDependencies ++= Seq(
  jdbc,
  "org.postgresql" % "postgresql" % "9.4-1206-jdbc42",
  cache,
  javaWs
)

AKTUALISIERUNG 2017: Ich habe erst jetzt bemerkt, dass sie kurz nach dem Schreiben dieser Antwort das Versionsschema geändert und das Fragment -jdbc[code] entfernt und durch .jre6, .jre7 oder nichts ersetzt haben, was anscheinend bedeutet, dass es für die neueste Java-Version gedacht ist (ich habe es nicht irgendetwas gefunden, was diese Behauptung unterstützt, aber es funktioniert). Noch einmal im Februar 2017 haben sie das Versionsschema erneut geändert und von Hauptversion 9 auf 42 gesprungen, wodurch die aktuelle Version (Stand 17. Juli 2017) mit "org.postgresql" % "postgresql" % "42.1.3" bezeichnet wird (oder entsprechend "org.postgresql" % "postgresql" % "42.1.3.jre7" / "org.postgresql" % "postgresql" % "42.1.3.jre6" )