úÎrwl˜9      !"#$%&'()*+,-./012345678 9:;<BParse a migration document and return a list of parsed fields and ! a list of claimed dependencies. =>?@ABCDEF9:;<=9:;<= GHIJKLMNOPQLLRA - 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 S (graph) of the   objects' dependency  relationships, with T 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). U 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). V          @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. :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.  !"#$%&'()*+,-. !"#$%&'(+)*.,- !"# !"#$%&'%&'()*+,-. WXYZ[\]^_`aaa/01bcd2@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. 3@Given a filesystem path, read and parse the file as a migration  return the  , if successful. Otherwise return a parsing  error message. ef@Given a migration and a list of parsed migration fields, update < the migration from the field values for recognized fields. ghijklmn/0123/0123/010123 opqr;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. 4Given 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 . 5+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 6Given 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. 7<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. 8<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. 456785678445678s    !"#$%&'()*+%,--./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab c d e f g h i j k l mnopqrstuvwxyz { | } ~dbmigrations-0.2'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 getMigrationsMapValidationErrorDependencyGraphErrorDependencyReferenceErrorMigrationStore 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