使用Persistent将Haskell类型映射到Postgres数据库

时间:2017-05-08 20:32:18

标签: haskell persistent

我有一个Haskell Status类型:

data Status = FirstViewed | Reviewed | Learned

如何将此数据映射到Persistent Postgres数据库?

share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
Vocabulary sql=vocabulary
   word Text
   date UTCTime
   status Status
   deriving Show
|]

1 个答案:

答案 0 :(得分:1)

@Alexis王所说的是正确的。你必须做 derivePersistField "Status"创建合适的 PersistField个实例。

但是你还必须派生你的Show和Read实例 总和类型:

data Status = FirstViewed | Reviewed | Learned deriving (Show, Read, Eq)

需要显示和读取实例,因为derivePersistField 在存储时使用它来执行适当的转换 从数据库中检索。还必须定义总和类型 因为阶段限制而在单独的文件中。你也可以 我想看看这一章 peristent这个地方 有详细记录。