PlaySlick数据库连接到PostgreSQL

时间:2016-11-14 20:41:12

标签: postgresql scala playframework slick-3.0 play-slick

我刚开始在Scala中使用Play Framework进行学校项目,所以我对框架还不太了解。我正在尝试使用光滑连接我的项目到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 个答案:

答案 0 :(得分:0)

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

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

    slick.dbs.default.db.connectionTestQuery =&#34; SELECT TRUE&#34;

在此之后它起作用了。