úÎu o4:      !"#$%&'()*+,-./0123456789 :;<=BParse a migration document and return a list of parsed fields and ! a list of claimed dependencies. >?@ABCDEFG:;<=>:;<=> HIJKLMNOPQRMMSA - represents a collection of objects together C with a graph of their dependency relationships. This is intended  to be used with instances of .  A mapping of  objects to  their graph vertex indices.  A mapping of  object # identifiers to their graph vertex  indices.  A directed T (graph) of the   objects' dependency  relationships, with U vertex and  edge labels. 7 objects supply a representation of their identifiers, 5 and a list of other objects upon which they depend. (The identifiers of the objects on which a depends. The identifier of a  object. (Build a dependency graph from a list of s. Return the D graph on success or return an error message if the graph cannot be 4 constructed (e.g., if the graph contains a cycle). V CGiven a dependency graph and an ID, return the IDs of objects that < the object depends on. IDs are returned with least direct - dependencies first (i.e., the apply order). CGiven a dependency graph and an ID, return the IDs of objects that ; depend on it. IDs are returned with least direct reverse . dependencies first (i.e., the revert order). W          @A Backend represents a database engine backend such as MySQL or @ SQLite. A Backend supplies relatively low-level functions for  inspecting the backend',s state, applying migrations, and reverting A migrations. A Backend also supplies the migration necessary to   bootstrap5 a backend so that it can track which migrations are  installed. :The migration necessary to bootstrap a database with this < connection interface. This might differ slightly from one  backend to another. >Returns whether the backend has been bootstrapped. A backend 7 has been bootstrapped if is capable of tracking which % migrations have been installed; the bootstrap migration ? provided by getBootstrapMigration should suffice to bootstrap  the backend. >Apply the specified migration on the backend. applyMigration > does NOT assume control of the transaction, since it expects 3 the transaction to (possibly) cover more than one ; applyMigration operation. The caller is expected to call @ commit at the appropriate time. If the application fails, the < underlying SqlError is raised and a manual rollback may be 5 necessary; for this, see withTransaction from HDBC. ;Revert the specified migration from the backend and record = this action in the table which tracks installed migrations. = revertMigration does NOT assume control of the transaction, @ since it expects the transaction to (possibly) cover more than @ one revertMigration operation. The caller is expected to call ; commit at the appropriate time. If the revert fails, the < underlying SqlError is raised and a manual rollback may be = necessary; for this, see withTransaction from HDBC. If the @ specified migration does not supply a revert instruction, this ' has no effect other than bookkeeping. >Returns a list of installed migration names from the backend. ?Backend instances should use this as the name of the migration > returned by getBootstrapMigration; this migration is special  because it cannot be reverted. :A type for types of validation errors for migration maps. An error was encountered when ' constructing the dependency graph for  this store. %A migration claims a dependency on a  migration that does not exist. AA type class for types which represent a storage facility (and a D monad context in which to operate on the store). A MigrationStore @ is a facility in which new migrations can be created, and from * which existing migrations can be loaded. !!Load a migration from the store. "Save a migration to the store. #)Return a list of all available migrations' names. $:Return the full representation of a given migration name; = mostly for filesystem stores, where the full representation  includes the store path. %&'()!A mapping from migration name to  . This is exported  for testing purposes, but you'll want to interface with this  through the encapsulating &% type. *2A convenience function for extracting the list of  s  extant in the specified &%. +(A convenience function for looking up a   by name in the  specified &%. ,#Load migrations from the specified  , validate the + loaded migrations, and return errors or a ) on @ success. Generally speaking, this will be the first thing you ) should call once you have constructed a  . -CValidate a migration map. Returns zero or more validation errors. .4Validate a single migration. Looks up the migration's  dependencies in the specified ) and returns a  . for each one that does not exist in the map. / Create a  from a ); returns Left if < the dependency graph cannot be constructed (e.g., due to a A dependency cycle) or Right on success. Generally speaking, you  won'!t want to use this directly; use , instead.  !"#$%&'()*+,-./ !"#$%&'(),*+/-. !"#$!"#$%&'(&'()*+,-./ XYZ[\]^_`abbb012cde3@Given a store and migration name, read and parse the associated E migration and return the migration if successful. Otherwise return  a parsing error message. 4@Given a filesystem path, read and parse the file as a migration  return the  , if successful. Otherwise return a parsing  error message. fg@Given a migration and a list of parsed migration fields, update < the migration from the field values for recognized fields. hijklmno01234012340121234 pqrs;General Backend instance for all IO-driven HDBC connection E implementations. You can provide a connection-specific instance if A need be; this implementation is provided with the hope that you  won't have to do that. 5Given a  and a ), query the backend and = return a list of migration names which are available in the  )$ but which are not installed in the . 6+Create a new migration and store it in the  , 4 with some of its fields initially set to defaults. The  $ in which to create a new migration (The name of the new migration to create EThe list of migration names on which the new migration should depend 7Given a ., ensure that the backend is ready for use by E bootstrapping it. This entails installing the appropriate database D elements to track installed migrations. If the backend is already # bootstrapped, this has no effect. 8<Given a migration mapping computed from a MigrationStore, a C backend, and a migration to apply, return a list of migrations to  apply, in order. 9<Given a migration mapping computed from a MigrationStore, a D backend, and a migration to revert, return a list of migrations to  revert, in order. 567896789556789t    !"#$%&'()*+,%-../0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc d e f g h i j k l m nopqrstuvwxyz{ | } ~ €dbmigrations-0.3'Database.Schema.Migrations.Dependencies$Database.Schema.Migrations.Migration"Database.Schema.Migrations.Backend Database.Schema.Migrations.Store%Database.Schema.Migrations.FilesystemDatabase.Schema.Migrations+Database.Schema.Migrations.Filesystem.Parse)Database.Schema.Migrations.CycleDetection/Database.Schema.Migrations.Filesystem.Serialize'Database.Schema.Migrations.Backend.HDBCDependencyGraphDGdepGraphObjectMapdepGraphNameMapdepGraph DependabledepsOfdepId mkDepGraph dependenciesreverseDependenciesMonadMigrationgetCurrentTime Migration mTimestampmIdmDescmApplymRevertmDeps newMigrationBackendgetBootstrapMigrationisBootstrappedapplyMigrationrevertMigration getMigrationsrootMigrationNameMapValidationErrorDependencyGraphErrorDependencyReferenceErrorMigrationStore loadMigration saveMigrationfullMigrationName StoreDatastoreDataMappingstoreDataGraph MigrationMapstoreMigrations storeLookuploadMigrationsvalidateMigrationMapvalidateSingleMigrationdepGraphFromMappingFilesystemStoreFSStore storePathmigrationFromFilemigrationFromPathmissingMigrationscreateNewMigrationensureBootstrappedBackendmigrationsToApplymigrationsToRevertFieldSetField FieldNamemigrationParser parseDepsListdiscardeol whitespacerequiredWhitespaceparseFieldName parseCommentparseEmptyLine parseFieldotherContentLinesCycleDetectionStateMarkBlackGrayWhitehasCyclegetMarkreplacesetMark hasCycle'visit NextNodesFunc fgl-5.4.2.3!Data.Graph.Inductive.PatriciaTreeGrbaseGHC.BaseString cleanLDupsdependenciesWithFieldSerializerfieldSerializers serializeDescserializeTimestampserializeDependsserializeRevertserializeApply commonPrefixcommonPrefixLinesserializeMultilineserializeMigrationFieldProcessorfilenameExtensionisMigrationFilename missingFieldsmigrationFromFieldsrequiredFieldsfieldProcessors setTimestamp readTimestampsetDescriptionsetApply setRevert setDependsmigrationTableName createSql revertSql$fBackendconnIO