persistent-migration-0.1.0: Manual migrations for the persistent library

MaintainerBrandon Chinn <brandonchinn178@gmail.com>
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Database.Persist.Migration.Operation

Contents

Description

Defines the Operation data types.

Synopsis

Documentation

type Version = Int Source #

The version of a database. An operation migrates from the given version to another version.

The version must be increasing, such that the lowest version is the first version and the highest version is the most up-to-date version.

A version represents a version of the database schema. In other words, any set of operations taken to get to version X *MUST* all result in the same database schema.

type OperationPath = (Version, Version) Source #

The path that an operation takes.

(~>) :: Version -> Version -> OperationPath Source #

An infix constructor for OperationPath.

type Migration = [MigrationPath] Source #

A migration list that defines operations to manually migrate a database schema.

data MigrationPath Source #

A path representing the operations needed to run to get from one version of the database schema to the next.

Constructors

OperationPath := [Operation] 

opPath :: MigrationPath -> OperationPath Source #

Get the OperationPath in the MigrationPath.

data Operation Source #

An operation that can be migrated.

Constructors

CreateTable 
DropTable 

Fields

RenameTable 

Fields

AddConstraint 
DropConstraint 

Fields

AddColumn 

Fields

RenameColumn 

Fields

DropColumn 
RawOperation

A custom operation that can be defined manually.

RawOperations should primarily use rawSql and rawExecute from the persistent library. If the operation depends on the backend being run, query connRDBMS from the SqlBackend:

asks connRDBMS >>= case
  "sqlite" -> ...
  _ -> return ()

validateOperation :: Operation -> Either String () Source #

Validate that the given Operation is valid.

Orphan instances

Show (SqlPersistT m a) Source # 
Instance details

Methods

showsPrec :: Int -> SqlPersistT m a -> ShowS #

show :: SqlPersistT m a -> String #

showList :: [SqlPersistT m a] -> ShowS #