hpqtypes-extras-1.13.1.0: Extra utilities for hpqtypes library
Safe HaskellNone
LanguageHaskell2010

Database.PostgreSQL.PQTypes.Model.Migration

Description

Using migrations is fairly easy. After you've defined the lists of migrations and tables, just run migrateDatabase:

tables :: [Table]
tables = ...

migrations :: [Migration]
migrations = ...

migrateDatabase options extensions domains tables migrations

Migrations are run strictly in the order specified in the migrations list, starting with the first migration for which the corresponding table in the DB has the version number equal to the mgrFrom field of the migration.

Synopsis

Documentation

data DropTableMode Source #

Whether to also drop objects that depend on the table.

Constructors

DropTableCascade

Automatically drop objects that depend on the table (such as views).

DropTableRestrict

Refuse to drop the table if any objects depend on it. This is the default.

data MigrationAction m Source #

Migration action to run, either an arbitrary MonadDB action, or something more fine-grained.

Constructors

StandardMigration (m ())

Standard migration, i.e. an arbitrary MonadDB action.

DropTableMigration DropTableMode

Drop table migration. Parameter is the drop table mode (RESTRICT/CASCADE). The Migration record holds the name of the table to drop.

CreateIndexConcurrentlyMigration

Migration for creating an index concurrently.

Fields

DropIndexConcurrentlyMigration

Migration for dropping an index concurrently.

Fields

data Migration m Source #

Migration object.

Constructors

Migration 

Fields

  • mgrTableName :: RawSQL ()

    The name of the table you're migrating.

  • mgrFrom :: Int32

    The version you're migrating *from* (you don't specify what version you migrate TO, because version is always increased by 1, so if mgrFrom is 2, that means that after that migration is run, table version will equal 3

  • mgrAction :: MigrationAction m

    Migration action.