| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Database.Groundhog.Generic.Migration
Description
This helper module is intended for use by the backend creators
- data Column = Column {
- colName :: String
- colNull :: Bool
- colType :: DbTypePrimitive
- colDefault :: Maybe String
- data Reference = Reference {}
- type QualifiedName = (Maybe String, String)
- data TableInfo = TableInfo {
- tableColumns :: [Column]
- tableUniques :: [UniqueDefInfo]
- tableReferences :: [(Maybe String, Reference)]
- type UniqueDefInfo = UniqueDef' String (Either String String)
- data AlterColumn
- data AlterTable
- data AlterDB
- = AddTable String
- | AlterTable QualifiedName String TableInfo TableInfo [AlterTable]
- | DropTrigger QualifiedName QualifiedName
- | AddTriggerOnDelete QualifiedName QualifiedName String
- | AddTriggerOnUpdate QualifiedName QualifiedName (Maybe String) String
- | CreateOrReplaceFunction String
- | DropFunction QualifiedName
- | CreateSchema String Bool
- data MigrationPack conn = MigrationPack {
- compareTypes :: DbTypePrimitive -> DbTypePrimitive -> Bool
- compareRefs :: (Maybe String, Reference) -> (Maybe String, Reference) -> Bool
- compareUniqs :: UniqueDefInfo -> UniqueDefInfo -> Bool
- compareDefaults :: String -> String -> Bool
- migTriggerOnDelete :: QualifiedName -> [(String, String)] -> Action conn (Bool, [AlterDB])
- migTriggerOnUpdate :: QualifiedName -> [(String, String)] -> Action conn [(Bool, [AlterDB])]
- migConstr :: EntityDef -> ConstructorDef -> Action conn (Bool, SingleMigration)
- escape :: String -> String
- autoincrementedKeyTypeName :: String
- mainTableId :: String
- defaultPriority :: Int
- addUniquesReferences :: [UniqueDefInfo] -> [Reference] -> ([String], [AlterTable])
- showSqlType :: DbTypePrimitive -> String
- showColumn :: Column -> String
- showAlterDb :: AlterDB -> SingleMigration
- defaultReferenceOnDelete :: ReferenceActionType
- defaultReferenceOnUpdate :: ReferenceActionType
- class PersistBackendConn conn => SchemaAnalyzer conn where
- migrateRecursively :: (PersistBackend m, PersistEntity v) => (String -> m SingleMigration) -> (EntityDef -> m SingleMigration) -> (DbType -> m SingleMigration) -> v -> Migration m
- migrateSchema :: SchemaAnalyzer conn => MigrationPack conn -> String -> Action conn SingleMigration
- migrateEntity :: (SchemaAnalyzer conn, PersistBackendConn conn) => MigrationPack conn -> EntityDef -> Action conn SingleMigration
- migrateList :: (SchemaAnalyzer conn, PersistBackendConn conn) => MigrationPack conn -> DbType -> Action conn SingleMigration
- getAlters :: MigrationPack m -> TableInfo -> TableInfo -> [AlterTable]
- defaultMigConstr :: (SchemaAnalyzer conn, PersistBackendConn conn) => MigrationPack conn -> EntityDef -> ConstructorDef -> Action conn (Bool, SingleMigration)
- showReferenceAction :: ReferenceActionType -> String
- readReferenceAction :: String -> Maybe ReferenceActionType
Documentation
Constructors
| Column | |
Fields
| |
Constructors
| Reference | |
Fields
| |
type QualifiedName = (Maybe String, String) Source #
Schema-qualified name of a table of another database object
Constructors
| TableInfo | |
Fields
| |
type UniqueDefInfo = UniqueDef' String (Either String String) Source #
Either column name or expression
data AlterColumn Source #
Constructors
| Type DbTypePrimitive | |
| IsNull | |
| NotNull | |
| Default String | |
| NoDefault | |
| UpdateValue String |
Instances
data AlterTable Source #
Constructors
| AddUnique UniqueDefInfo | |
| DropConstraint String | |
| DropIndex String | |
| AddReference Reference | |
| DropReference String | |
| DropColumn String | |
| AddColumn Column | |
| AlterColumn Column [AlterColumn] |
Instances
Constructors
| AddTable String | |
| AlterTable QualifiedName String TableInfo TableInfo [AlterTable] | Qualified table name, create statement, structure of table from DB, structure of table from datatype, alters |
| DropTrigger QualifiedName QualifiedName | Qualified trigger name, qualified table name |
| AddTriggerOnDelete QualifiedName QualifiedName String | Qualified trigger name, qualified table name, body |
| AddTriggerOnUpdate QualifiedName QualifiedName (Maybe String) String | Qualified trigger name, qualified table name, field name, body |
| CreateOrReplaceFunction String | Statement which creates the function |
| DropFunction QualifiedName | Qualified function name |
| CreateSchema String Bool | Schema name, if not exists |
data MigrationPack conn Source #
Constructors
class PersistBackendConn conn => SchemaAnalyzer conn where Source #
Minimal complete definition
schemaExists, getCurrentSchema, listTables, listTableTriggers, analyzeTable, analyzeTrigger, analyzeFunction, getMigrationPack
Methods
schemaExists :: (PersistBackend m, Conn m ~ conn) => String -> m Bool Source #
getCurrentSchema :: (PersistBackend m, Conn m ~ conn) => m (Maybe String) Source #
listTables :: (PersistBackend m, Conn m ~ conn) => Maybe String -> m [String] Source #
listTableTriggers :: (PersistBackend m, Conn m ~ conn) => QualifiedName -> m [String] Source #
analyzeTable :: (PersistBackend m, Conn m ~ conn) => QualifiedName -> m (Maybe TableInfo) Source #
analyzeTrigger :: (PersistBackend m, Conn m ~ conn) => QualifiedName -> m (Maybe String) Source #
analyzeFunction :: (PersistBackend m, Conn m ~ conn) => QualifiedName -> m (Maybe (Maybe [DbTypePrimitive], Maybe DbTypePrimitive, String)) Source #
getMigrationPack :: (PersistBackend m, Conn m ~ conn) => m (MigrationPack conn) Source #
Arguments
| :: (PersistBackend m, PersistEntity v) | |
| => (String -> m SingleMigration) | migrate schema |
| -> (EntityDef -> m SingleMigration) | migrate entity |
| -> (DbType -> m SingleMigration) | migrate list |
| -> v | initial entity |
| -> Migration 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
migrateSchema :: SchemaAnalyzer conn => MigrationPack conn -> String -> Action conn SingleMigration Source #
migrateEntity :: (SchemaAnalyzer conn, PersistBackendConn conn) => MigrationPack conn -> EntityDef -> Action conn SingleMigration Source #
migrateList :: (SchemaAnalyzer conn, PersistBackendConn conn) => MigrationPack conn -> DbType -> Action conn SingleMigration Source #
Arguments
| :: MigrationPack m | |
| -> TableInfo | From database |
| -> TableInfo | From datatype |
| -> [AlterTable] |
defaultMigConstr :: (SchemaAnalyzer conn, PersistBackendConn conn) => MigrationPack conn -> EntityDef -> ConstructorDef -> Action conn (Bool, SingleMigration) Source #