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?)

貢獻者指南