yesodweb/persistent

newtype interferes with unique constraints in MySQL

开放

#100 创建于 2012年10月29日

 (11 条评论) (0 个反应) (0 位负责人)Haskell (302 个派生)auto 404
Feature RequestMySQLgood first issue

仓库指标

星标
 (484 个星标)
PR 合并指标
 (PR 指标待抓取)

描述

Text fields can have unique constraints over them.

However, when a Text field is newtype'd, for extra type safety, this facility appears to break:

In Model.hs with GeneralizedNewtypeDeriving:

newtype Hash = Hash { unHash :: Text }
    deriving (Show, Read, Eq, PathPiece, PersistField)

In config/models:

Profile
  hash Hash
  UniqueHash hash

On initial database migration with mysql, we see:

Migrating: ALTER TABLE `profile` ADD CONSTRAINT `unique_hash` UNIQUE(`hash`)
hpd3js: ConnectionError {errFunction = "query", errNumber = 1170, errMessage = "BLOB/TEXT column 'hash' used in key specification without a key length"}

Uncaught instance of overlapping instances floating around, perhaps? (Am I missing a deriving statement?)

贡献者指南