【问题标题】:Errors when converting to postgres转换为 postgres 时出错
【发布时间】:2014-07-09 05:59:42
【问题描述】:

背景

  • 播放 2.3
  • 光滑 2.1
  • Play-Slick 0.7
  • 在 Typesafe Activator 中运行

我有一个非常基本的基于 Play 和 Slick 的应用程序。到目前为止,我一直在使用大多数示例中默认使用的内存 h2 数据库。

application.conf 我有以下几行:

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"

如果我使用

import play.api.db.slick.Config.driver.simple._

对于与数据库交互的任何代码,应用程序都知道要拉入application.conf 中的定义,当我运行我的应用程序时会发生以下情况:

  • evolutions.default/1.sql 已创建
  • 在内存中实例化了一个新的 h2 数据库
  • 1.sql 在该数据库上运行
  • 应用程序可以与数据库交互

问题

我想迁移到使用 Postgres 数据库,所以我将 application.conf 更改为:

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost:5432/testdb"
db.default.user=testuser

我已将以下内容添加到我的build.sbt

libraryDependencies ++= Seq(
  ...
  "org.postgresql" % "postgresql" % "9.3-1100-jdbc4"
)

但是,如果我编写如下测试:

import models._
import org.specs2.mutable.Specification
import play.api.db.slick.Config.driver.simple._
import play.api.db.slick.DB
import scala.language.reflectiveCalls
import play.api.test.{FakeApplication, WithApplication}

class FooSpec extends Specification {    
  "DB" should {    
    "store Foos" in new WithApplication {    
      val foos = TableQuery[FooTable]    
      DB.withSession { implicit s: Session =>
        foos.insert(Foo("bar"))
      }
    }
  }
}

我遇到了一些我不明白的错误:

[error] p.a.d.s.d.TableScanner$ - 转换为 DDL 时出错。检查用于 Table/TableQuery 的配置文件是否与 DDL 生成使用的配置文件相同。

[信息] foospec

[信息]数据库应该

[信息]!存储Foos

[error] SlickException: JdbcProfile has no TypeInfo for type Int/INTEGER

(如果需要,我有错误的堆栈跟踪,但我现在把它省略了)

知道我做错了什么吗?

【问题讨论】:

    标签: playframework slick slick-2.0 playframework-2.3 play-slick


    【解决方案1】:

    我不知道具体在哪里,但是您在不同的地方导入了不同的 Slick 驱动程序。当从他们那里获取的工件混淆时,您会得到SlickException: JdbcProfile has no TypeInfo for type Int/INTEGER

    【讨论】:

    • 你是对的——虽然我实际上并没有引用导入不同数据库驱动程序的旧 .scala 文件,但它仍然被导入到我的测试中,因此出现了这个问题。谢谢指点。
    猜你喜欢
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 2020-09-06
    • 2016-04-07
    • 2012-12-17
    • 2013-08-28
    相关资源
    最近更新 更多