postgresql-simple-migration-0.1.2.0: PostgreSQL Schema Migrations

Copyright(c) 2014 Andreas Meingast <ameingast@gmail.com>
LicenseBSD-style
Maintainerameingast@gmail.com
Stabilityexperimental
PortabilityGHC
Safe HaskellNone
LanguageHaskell2010

Database.PostgreSQL.Simple.Migration

Contents

Description

A migration library for postgresql-simple.

For usage, see Readme.markdown.

Synopsis

Migration actions

runMigration :: MigrationContext -> IO (MigrationResult String) Source

Executes migrations inside the provided MigrationContext.

Returns MigrationSuccess if the provided MigrationCommand executes without error. If an error occurs, execution is stopped and a MigrationError is returned.

It is recommended to wrap runMigration inside a database transaction.

Migration types

data MigrationContext Source

The MigrationContext provides an execution context for migrations.

Constructors

MigrationContext 

Fields

migrationContextCommand :: MigrationCommand

The action that will be performed by runMigration

migrationContextVerbose :: Bool

Verbosity of the library.

migrationContextConnection :: Connection

The PostgreSQL connection to use for migrations.

data MigrationCommand Source

MigrationCommand determines the action of the runMigration script.

Constructors

MigrationInitialization

Initializes the database with a helper table containing meta information.

MigrationDirectory FilePath

Executes migrations based on SQL scripts in the provided FilePath in alphabetical order.

MigrationFile ScriptName FilePath

Executes a migration based on script located at the provided FilePath.

MigrationScript ScriptName ByteString

Executes a migration based on the provided bytestring.

MigrationValidation MigrationCommand

Validates the provided MigrationCommand.

data MigrationResult a Source

A sum-type denoting the result of a migration.

Constructors

MigrationError a

There was an error in script migration.

MigrationSuccess

All scripts have been executed successfully.

Instances

type ScriptName = String Source

The name of a script. Typically the filename or a custom name when using Haskell migrations.

type Checksum = ByteString Source

The checksum type of a migration script.

Migration result actions

getMigrations :: Connection -> IO [SchemaMigration] Source

Produces a list of all executed SchemaMigrations.

Migration result types

data SchemaMigration Source

A product type representing a single, executed SchemaMigration.

Constructors

SchemaMigration 

Fields

schemaMigrationName :: ByteString

The name of the executed migration.

schemaMigrationChecksum :: Checksum

The calculated MD5 checksum of the executed script.

schemaMigrationExecutedAt :: LocalTime

A timestamp without timezone of the date of execution of the script.