有没有人成功使用Slick(我目前使用3.0.0-RC3,最新的可用版本)来生成包含特定于DB的功能的表定义?如果是这样,如何实现呢?
示例:我在Postgres中有一个列,其定义如下:
"request_date" timestamp default now(),
我尝试(失败)在Slick DDL中描述。
首次尝试:
def requestDate = column[Option[DateTime]]("request_date", O Default "now()")
当然,这被拒绝了:
[error] <path-to-file>: type mismatch;
[error] found : String("now()")
[error] required: Option[org.joda.time.DateTime]
[error] def requestDate = column[Option[DateTime]]("request_date", O Default "now()")
好的,我试图定义一个SimpleFunction(我已经有了DateTime转换器):
val dbNow = SimpleFunction.nullary[DateTime]("now")
def requestDate = column[Option[DateTime]]("request_date", O Default dbNow)
产生了另一个错误:
[error] <path-to-file>: type mismatch;
[error] found : slick.lifted.Rep[org.joda.time.DateTime]
[error] required: Option[org.joda.time.DateTime]
[error] def requestDate = column[Option[DateTime]]("request_date", O Default dbNow)
我也尝试了SimpleLiteral[DateTime]("now()")
,这导致了类似的错误。 (删除选项也没有帮助。)
任何想法都将不胜感激。有点令人沮丧的是,这么简单的事情似乎并不容易获得......