| Copyright | (c) 2014 Andreas Meingast <ameingast@gmail.com> |
|---|---|
| License | BSD-style |
| Maintainer | ameingast@gmail.com |
| Stability | experimental |
| Portability | GHC |
| Safe Haskell | None |
| Language | Haskell2010 |
Database.PostgreSQL.Simple.Migration
Description
A migration library for postgresql-simple.
For usage, see Readme.markdown.
Synopsis
- runMigration :: MigrationContext -> IO (MigrationResult String)
- runMigrations :: Bool -> Connection -> [MigrationCommand] -> IO (MigrationResult String)
- sequenceMigrations :: Monad m => [m (MigrationResult e)] -> m (MigrationResult e)
- data MigrationContext = MigrationContext {}
- data MigrationCommand
- data MigrationResult a
- type ScriptName = String
- type Checksum = ByteString
- getMigrations :: Connection -> IO [SchemaMigration]
- data SchemaMigration = SchemaMigration {}
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.
Arguments
| :: Bool | Run in verbose mode |
| -> Connection | The postgres connection to use |
| -> [MigrationCommand] | The commands to run |
| -> IO (MigrationResult String) |
Execute a sequence of migrations
Returns MigrationSuccess if all of the provided MigrationCommands
execute without error. If an error occurs, execution is stopped and the
MigrationError is returned.
It is recommended to wrap runMigrations inside a database transaction.
sequenceMigrations :: Monad m => [m (MigrationResult e)] -> m (MigrationResult e) Source #
Run a sequence of contexts, stopping on the first failure
Migration types
data MigrationContext Source #
The MigrationContext provides an execution context for migrations.
Constructors
| MigrationContext | |
Fields
| |
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 |
| MigrationFile ScriptName FilePath | Executes a migration based on script located at the provided
|
| MigrationScript ScriptName ByteString | Executes a migration based on the provided bytestring. |
| MigrationValidation MigrationCommand | Validates that the provided MigrationCommand has been executed. |
| MigrationCommands [MigrationCommand] | Performs a series of |
Instances
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
| |