persistent-2.14.5.1: Type-safe, multi-backend data serialization.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Database.Persist.EntityDef.Internal

Description

The EntityDef type, fields, and constructor are exported from this module. Breaking changes to the EntityDef type are not reflected in the major version of the API. Please import from Database.Persist.EntityDef instead.

If you need this module, please file a GitHub issue why.

Since: 2.13.0.0

Synopsis

Documentation

data EntityDef Source #

An EntityDef represents the information that persistent knows about an Entity. It uses this information to generate the Haskell datatype, the SQL migrations, and other relevant conversions.

Constructors

EntityDef 

Fields

entitiesPrimary :: EntityDef -> NonEmpty FieldDef Source #

Return the [FieldDef] for the entity keys.

keyAndEntityFields :: EntityDef -> NonEmpty FieldDef Source #

Returns a NonEmpty list of FieldDef that correspond with the key columns for an EntityDef.

data EntityIdDef Source #

The definition for the entity's primary key ID.

Since: 2.13.0.0

Constructors

EntityIdField !FieldDef

The entity has a single key column, and it is a surrogate key - that is, you can't go from rec -> Key rec.

Since: 2.13.0.0

EntityIdNaturalKey !CompositeDef

The entity has a natural key. This means you can write rec -> Key rec because all the key fields are present on the datatype.

A natural key can have one or more columns.

Since: 2.13.0.0