PlaySlick 数据库连接到 PostgreSQL

Posted

技术标签:

【中文标题】PlaySlick 数据库连接到 PostgreSQL【英文标题】:PlaySlick Database Connection to PostgreSQL 【发布时间】:2016-11-14 20:41:11 【问题描述】:

我刚开始在 Scala 中为一个学校项目使用 Play Framework,所以我对该框架还不太了解。我正在尝试使用 slick 将我的项目连接到 PostgreSql,但它不起作用。我做了与在 Play 网站和许多教程中找到的完全相同的操作,但它不起作用。

这是我在 application.conf 文件中的数据库配置

  slick.dbs.default.driver="slick.driver.PostgresDriver$"
  slick.dbs.default.db.driver="org.postgresql.Driver"
  slick.dbs.default.db.url="jdbc:postgresql://localhost:5432/IRProject"
  slick.dbs.default.db.user="<my_username>"
  slick.dbs.default.db.password="<my_password>"

conf/evolutions/default中的1.sql文件

# --- !Ups

CREATE TABLE Document(
  id SERIAL PRIMARY KEY NOT NULL,
  title VARCHAR(500),
  date TIMESTAMP WITH TIME ZONE,
  url VARCHAR(1000) NOT NULL ,
  path VARCHAR(1000) NOT NULL ,
  summary VARCHAR(5000) NOT NULL

);


# --- !Downs

DROP TABLE IF EXISTS Document;

我的依赖:

  "org.webjars" % "jquery" % "2.1.3",
  "com.typesafe.play" %% "play-slick" % "1.1.1",
  "com.typesafe.play" %% "play-slick-evolutions" % "1.1.1",
  "postgresql" % "postgresql" % "9.1-901.jdbc4"

当我使用激活器运行时,我根本看不到任何关于数据库连接的日志或任何错误。应用程序刚刚启动,但数据库中没有任何表。

有人知道这是什么原因吗?

【问题讨论】:

【参考方案1】:

如果有人遇到这个问题,这些是我找到的解决方案。

我将光滑的 db 配置放在配置文件内的 db 块中,但这是错误的,它应该直接在配置文件的外部。

我需要添加一个可用于测试连接的测试查询,例如

slick.dbs.default.db.connectionTestQuery="SELECT TRUE"

在这之后它起作用了。

【讨论】:

以上是关于PlaySlick 数据库连接到 PostgreSQL的主要内容,如果未能解决你的问题,请参考以下文章

致命:连接到 postgres 时用户“postgres”的密码验证失败

允许 docker 容器连接到本地/主机 postgres 数据库

连接到 postgres 数据库失败

如何将 obiee 连接到 postgres 数据库?

如何从本地系统连接到 Linode 中的 postgres

postgres服务器拒绝连接到heroku