Jak mogę utworzyć niestandardowy typ kolumny za pomocą Typesafe Slick w Scali?

Mam tabelę PostgreSQL zenum, który jest tworzony przez:

CREATE TYPE file_status AS ENUM ('new', 'uploading', 'queued', 'processing', 'done', 'failed');

i powiązane pole

CREATE TABLE files ( ...
    status file_status NOT NULL,
    ...
);

Z Scala 2.10 i Typesafe Slick 1.0.1 stworzyłem mapowania do mojej tabeli plików, które działają świetnie z wyjątkiemstatus pole, które wymaga zwyczajufile_status typ, ciąg.

def status = column[FileStatus]("status")

Grałem w Slick's TypeMapper, ale nie wiem, jak go uruchomić:

sealed trait FileStatus

implicit val fileStatusMapper: TypeMapper[String] = base[FileStatus, String](
  s => s.toString,
  f => f(FileStatus)
) 

Dostaję błąd:niedopasowanie typu; znaleziono: models.Files.FileStatus.type required: Int

Dlaczego wymagany jest Int? Czy to z powodu TypeMapper? Próbowałem też

...
f => f.toString
// type mismatch; found : String required: models.Files.FileStatus

f => f
// type mismatch; found : String required: models.Files.FileStatus

Dziękujemy za wszelkie wskazówki, które pomogą mi zrozumieć to mapowanie.

questionAnswers(2)

yourAnswerToTheQuestion