PlaySlick 数据库连接到 PostgreSQL

PlaySlick Database Connection to PostgreSQL

我刚开始在学校项目中使用 Scala 中的 Play Framework,所以我对 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>"

1.sql 文件在 conf/evolutions/default

# --- !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"

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

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

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

  • 我将 slick db 配置放在配置文件内的 db{} 块中,但这是错误的,它应该直接在配置文件内。
  • 我需要添加一个可用于测试连接的测试查询,例如

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

在此之后它起作用了。