Type-safe, non-relational, multi-backend persistence.

Version on this page:2.6.0
LTS Haskell 13.22:2.5.4
Stackage Nightly 2019-05-21:2.6.0
Latest on Hackage:2.7.1

See all snapshots persistent-template appears in

MIT licensed by Michael Snoyman
Maintained by Michael Snoyman, Greg Weber

Module documentation for 2.6.0


Provides Template Haskell helpers for persistent. For more information, see the chapter in the Yesod book.

code organization

The TH.hs module contains code generators. persistent-template uses EntityDefs that it gets from the quasi-quoter. The quasi-quoter is in persistent Quasi.hs Similarly mant of the types come from the persistent library



  • Add the mkEntityDefList function to work around #902. #904


  • Depends on persistent-2.10.0 which provides the OnlyOneUniqueKey and AtLeastOneUniqueKey classes. Automatically generates instances for these classes based on how many unique keys the entity definition gets. This changes requires UndecidableInstances to be enabled on each module that generates entity definitions. #885
  • Removed deprecated sqlOnlySettings. Please use sqlSettings instead. #894



  • Slight improvement to the error message when a Persistent field can’t be parsed from database results


  • Exposed parseReferences to allow custom QuasiQuoters


  • Fix incorrect ToJSON/FromJSON instance generation for generic backends

Allow non-null self-references in a list

  • Allow composite Primary keys for tables that contain nullable fields.
  • Support foreign keys to non-integer ids

  • fix GHC 7.8 bug when a field name is “type”

  • fix a bad Eq instance /= definition for Key when mpsGenetric=True

  • workaround TH bug in GHC 7.10


  • read/write typeclass split


  • aeson 0.11
  • transformers 0.5


support http-api-data for url serialization

By default explicitly use Int64 for foreign key references. This avoids confusion on a 32 bit system.

Support foreign key references to composite primary keys

Support for monad-control 1.0

comments powered byDisqus