groundhog-0.5.1: Type-safe datatype-database mapping library.

Safe HaskellNone

Database.Groundhog.Generic.Migration

Description

This helper module is intended for use by the backend creators

Synopsis

Documentation

data TableInfo Source

Constructors

TableInfo 

Fields

tableColumns :: [Column]
 
tableUniques :: [UniqueDef']
 
tableReferences :: [(Maybe String, Reference)]

constraint name and reference

Instances

data AlterDB Source

Constructors

AddTable String 
AlterTable (Maybe String) String String TableInfo TableInfo [AlterTable]

Table schema, table name, create statement, structure of table from DB, structure of table from datatype, alters

DropTrigger (Maybe String) String (Maybe String) String

Trigger schema, trigger name, table schema, table name

AddTriggerOnDelete (Maybe String) String (Maybe String) String String

Trigger schema, trigger name, table schema, table name, body

AddTriggerOnUpdate (Maybe String) String (Maybe String) String (Maybe String) String

Trigger schema, trigger name, table schema, table name, field name, body

CreateOrReplaceFunction String

Statement which creates the function

DropFunction (Maybe String) String

Function schema, function name

CreateSchema String Bool

Schema name, if not exists

Instances

class (Applicative m, Monad m) => SchemaAnalyzer m whereSource

Methods

schemaExistsSource

Arguments

:: String

Schema name

-> m Bool 

getCurrentSchema :: m (Maybe String)Source

listTablesSource

Arguments

:: Maybe String

Schema name

-> m [String] 

listTableTriggersSource

Arguments

:: Maybe String

Schema name

-> String

Table name

-> m [String] 

analyzeTableSource

Arguments

:: Maybe String

Schema name

-> String

Table name

-> m (Maybe TableInfo) 

analyzeTriggerSource

Arguments

:: Maybe String

Schema name

-> String

Trigger name

-> m (Maybe String) 

analyzeFunctionSource

Arguments

:: Maybe String

Schema name

-> String

Function name

-> m (Maybe String) 

migrateRecursivelySource

Arguments

:: (Monad m, PersistEntity v) 
=> (String -> m SingleMigration)

migrate schema

-> (EntityDef -> m SingleMigration)

migrate entity

-> (DbType -> m SingleMigration)

migrate list

-> v

initial entity

-> StateT NamedMigrations m () 

Create migration for a given entity and all entities it depends on. The stateful Map is used to avoid duplicate migrations when an entity type occurs several times in a datatype

getAltersSource

Arguments

:: MigrationPack m 
-> TableInfo

From database

-> TableInfo

From datatype

-> [AlterTable]