persistent-2.14.6.3: Type-safe, multi-backend data serialization.

Safe Haskell | None
Language | Haskell2010

Database.Persist.FieldDef

Contents

- The `FieldDef` type
  - Setters
  - Helpers
- `FieldCascade`

Description

Since: 2.13.0.0

Synopsis

- data FieldDef
- setFieldAttrs :: [FieldAttr] -> FieldDef -> FieldDef
- overFieldAttrs :: ([FieldAttr] -> [FieldAttr]) -> FieldDef -> FieldDef
- addFieldAttr :: FieldAttr -> FieldDef -> FieldDef
- isFieldNullable :: FieldDef -> IsNullable
- isFieldMaybe :: FieldDef -> Bool
- isFieldNotGenerated :: FieldDef -> Bool
- isHaskellField :: FieldDef -> Bool
- data FieldCascade = FieldCascade {
  - fcOnUpdate :: !(Maybe CascadeAction)
  - fcOnDelete :: !(Maybe CascadeAction)
  }
- renderFieldCascade :: FieldCascade -> Text
- renderCascadeAction :: CascadeAction -> Text
- noCascade :: FieldCascade
- data CascadeAction
  - = Cascade
  - | Restrict
  - | SetNull
  - | SetDefault

# The `FieldDef` type

data FieldDef #

A `FieldDef` represents the inormation that `persistent` knows about a field of a datatype. This includes information used to parse the field out of the database and what the field corresponds to.

#### Instances

Instances details

Read FieldDef # |
Instance details Defined in Database.Persist.Types.Base Methods readsPrec :: Int -> ReadS FieldDef # readList :: ReadS [FieldDef] # readPrec :: ReadPrec FieldDef # readListPrec :: ReadPrec [FieldDef] #
Show FieldDef # |
Instance details Defined in Database.Persist.Types.Base Methods showsPrec :: Int -> FieldDef -> ShowS # show :: FieldDef -> String # showList :: [FieldDef] -> ShowS #
Eq FieldDef # |
Instance details Defined in Database.Persist.Types.Base Methods (==) :: FieldDef -> FieldDef -> Bool # (/=) :: FieldDef -> FieldDef -> Bool #
Ord FieldDef # |
Instance details Defined in Database.Persist.Types.Base Methods compare :: FieldDef -> FieldDef -> Ordering # (<) :: FieldDef -> FieldDef -> Bool # (<=) :: FieldDef -> FieldDef -> Bool # (>) :: FieldDef -> FieldDef -> Bool # (>=) :: FieldDef -> FieldDef -> Bool # max :: FieldDef -> FieldDef -> FieldDef # min :: FieldDef -> FieldDef -> FieldDef #
Lift FieldDef # |
Instance details Defined in Database.Persist.Types.Base Methods lift :: Quote m => FieldDef -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => FieldDef -> Code m FieldDef #

## Setters

setFieldAttrs :: [FieldAttr] -> FieldDef -> FieldDef #

Replace the `FieldDef` `FieldAttr` with the new list.

Since: 2.13.0.0

overFieldAttrs :: ([FieldAttr] -> [FieldAttr]) -> FieldDef -> FieldDef #

Modify the list of field attributes.

Since: 2.13.0.0

addFieldAttr :: FieldAttr -> FieldDef -> FieldDef #

Add an attribute to the list of field attributes.

Since: 2.13.0.0

## Helpers

isFieldNullable :: FieldDef -> IsNullable #

Check if the field definition is nullable

Since: 2.13.0.0

isFieldMaybe :: FieldDef -> Bool #

Check if the field is `Maybe a`

Since: 2.13.0.0

isFieldNotGenerated :: FieldDef -> Bool #

isHaskellField :: FieldDef -> Bool #

Returns `True` if the `FieldDef` does not have a `MigrationOnly` or `SafeToRemove` flag from the QuasiQuoter.

Since: 2.13.0.0

# `FieldCascade`

data FieldCascade #

This datatype describes how a foreign reference field cascades deletes or updates.

This type is used in both parsing the model definitions and performing migrations. A `Nothing` in either of the field values means that the user has not specified a `CascadeAction`. An unspecified `CascadeAction` is defaulted to `Restrict` when doing migrations.

Since: 2.11.0

Constructors

FieldCascade |
Fields fcOnUpdate :: !(Maybe CascadeAction) fcOnDelete :: !(Maybe CascadeAction)

#### Instances

Instances details

Read FieldCascade # |
Instance details Defined in Database.Persist.Types.Base Methods readsPrec :: Int -> ReadS FieldCascade # readList :: ReadS [FieldCascade] # readPrec :: ReadPrec FieldCascade # readListPrec :: ReadPrec [FieldCascade] #
Show FieldCascade # |
Instance details Defined in Database.Persist.Types.Base Methods showsPrec :: Int -> FieldCascade -> ShowS # show :: FieldCascade -> String # showList :: [FieldCascade] -> ShowS #
Eq FieldCascade # |
Instance details Defined in Database.Persist.Types.Base Methods (==) :: FieldCascade -> FieldCascade -> Bool # (/=) :: FieldCascade -> FieldCascade -> Bool #
Ord FieldCascade # |
Instance details Defined in Database.Persist.Types.Base Methods compare :: FieldCascade -> FieldCascade -> Ordering # (<) :: FieldCascade -> FieldCascade -> Bool # (<=) :: FieldCascade -> FieldCascade -> Bool # (>) :: FieldCascade -> FieldCascade -> Bool # (>=) :: FieldCascade -> FieldCascade -> Bool # max :: FieldCascade -> FieldCascade -> FieldCascade # min :: FieldCascade -> FieldCascade -> FieldCascade #
Lift FieldCascade # |
Instance details Defined in Database.Persist.Types.Base Methods lift :: Quote m => FieldCascade -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => FieldCascade -> Code m FieldCascade #

renderFieldCascade :: FieldCascade -> Text #

Renders a `FieldCascade` value such that it can be used in SQL migrations.

Since: 2.11.0

renderCascadeAction :: CascadeAction -> Text #

Render a `CascadeAction` to `Text` such that it can be used in a SQL command.

Since: 2.11.0

noCascade :: FieldCascade #

A `FieldCascade` that does nothing.

Since: 2.11.0

data CascadeAction #

An action that might happen on a deletion or update on a foreign key change.

Since: 2.11.0

Constructors

Cascade |
Restrict |
SetNull |
SetDefault |

#### Instances

Instances details

Read CascadeAction # |
Instance details Defined in Database.Persist.Types.Base Methods readsPrec :: Int -> ReadS CascadeAction # readList :: ReadS [CascadeAction] # readPrec :: ReadPrec CascadeAction # readListPrec :: ReadPrec [CascadeAction] #
Show CascadeAction # |
Instance details Defined in Database.Persist.Types.Base Methods showsPrec :: Int -> CascadeAction -> ShowS # show :: CascadeAction -> String # showList :: [CascadeAction] -> ShowS #
Eq CascadeAction # |
Instance details Defined in Database.Persist.Types.Base Methods (==) :: CascadeAction -> CascadeAction -> Bool # (/=) :: CascadeAction -> CascadeAction -> Bool #
Ord CascadeAction # |
Instance details Defined in Database.Persist.Types.Base Methods compare :: CascadeAction -> CascadeAction -> Ordering # (<) :: CascadeAction -> CascadeAction -> Bool # (<=) :: CascadeAction -> CascadeAction -> Bool # (>) :: CascadeAction -> CascadeAction -> Bool # (>=) :: CascadeAction -> CascadeAction -> Bool # max :: CascadeAction -> CascadeAction -> CascadeAction # min :: CascadeAction -> CascadeAction -> CascadeAction #
Lift CascadeAction # |
Instance details Defined in Database.Persist.Types.Base Methods lift :: Quote m => CascadeAction -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => CascadeAction -> Code m CascadeAction #