@@ -39,12 +39,13 @@ import qualified Database.Persist.Sql.Util as Util
3939--
4040-- @since 2.17.1.0
4141migrateStructured
42- :: [EntityDef ]
42+ :: BackendSpecificOverrides
43+ -> [EntityDef ]
4344 -> (Text -> IO Statement )
4445 -> EntityDef
4546 -> IO (Either [Text ] [AlterDB ])
46- migrateStructured allDefs getter entity =
47- migrateEntitiesStructured getter allDefs [entity]
47+ migrateStructured overrides allDefs getter entity =
48+ migrateEntitiesStructured overrides getter allDefs [entity]
4849
4950-- | Returns a structured representation of all of the DB changes required to
5051-- migrate the listed entities from their current state in the database to the
@@ -54,15 +55,16 @@ migrateStructured allDefs getter entity =
5455--
5556-- @since 2.14.1.0
5657migrateEntitiesStructured
57- :: (Text -> IO Statement )
58+ :: BackendSpecificOverrides
59+ -> (Text -> IO Statement )
5860 -> [EntityDef ]
5961 -> [EntityDef ]
6062 -> IO (Either [Text ] [AlterDB ])
61- migrateEntitiesStructured getStmt allDefs defsToMigrate = do
63+ migrateEntitiesStructured overrides getStmt allDefs defsToMigrate = do
6264 r <- collectSchemaState getStmt (map getEntityDBName defsToMigrate)
6365 pure $ case r of
6466 Right schemaState ->
65- migrateEntitiesFromSchemaState schemaState allDefs defsToMigrate
67+ migrateEntitiesFromSchemaState overrides schemaState allDefs defsToMigrate
6668 Left err ->
6769 Left [err]
6870
@@ -73,11 +75,12 @@ migrateEntitiesStructured getStmt allDefs defsToMigrate = do
7375--
7476-- @since 2.17.1.0
7577mockMigrateStructured
76- :: [EntityDef ]
78+ :: BackendSpecificOverrides
79+ -> [EntityDef ]
7780 -> EntityDef
7881 -> [AlterDB ]
79- mockMigrateStructured allDefs entity =
80- migrateEntityFromSchemaState EntityDoesNotExist allDefs entity
82+ mockMigrateStructured overrides allDefs entity =
83+ migrateEntityFromSchemaState overrides EntityDoesNotExist allDefs entity
8184
8285-- | In order to ensure that generating migrations is fast and avoids N+1
8386-- queries, we split it into two phases. The first phase involves querying the
@@ -532,19 +535,20 @@ mapLeft _ (Right x) = Right x
532535mapLeft f (Left x) = Left (f x)
533536
534537migrateEntitiesFromSchemaState
535- :: SchemaState
538+ :: BackendSpecificOverrides
539+ -> SchemaState
536540 -> [EntityDef ]
537541 -> [EntityDef ]
538542 -> Either [Text ] [AlterDB ]
539- migrateEntitiesFromSchemaState (SchemaState schemaStateMap) allDefs defsToMigrate =
543+ migrateEntitiesFromSchemaState overrides (SchemaState schemaStateMap) allDefs defsToMigrate =
540544 let
541545 go :: EntityDef -> Either Text [AlterDB ]
542546 go entity = do
543547 let
544548 name = getEntityDBName entity
545549 case Map. lookup name schemaStateMap of
546550 Just entityState ->
547- Right $ migrateEntityFromSchemaState entityState allDefs entity
551+ Right $ migrateEntityFromSchemaState overrides entityState allDefs entity
548552 Nothing ->
549553 Left $ T. pack $ " No entry for entity in schemaState: " <> show name
550554 in
@@ -553,11 +557,12 @@ migrateEntitiesFromSchemaState (SchemaState schemaStateMap) allDefs defsToMigrat
553557 (errs, _) -> Left errs
554558
555559migrateEntityFromSchemaState
556- :: EntitySchemaState
560+ :: BackendSpecificOverrides
561+ -> EntitySchemaState
557562 -> [EntityDef ]
558563 -> EntityDef
559564 -> [AlterDB ]
560- migrateEntityFromSchemaState schemaState allDefs entity =
565+ migrateEntityFromSchemaState overrides schemaState allDefs entity =
561566 case schemaState of
562567 EntityDoesNotExist ->
563568 (addTable newcols entity) : uniques ++ references ++ foreignsAlt
@@ -577,7 +582,7 @@ migrateEntityFromSchemaState schemaState allDefs entity =
577582 acs' ++ ats'
578583 where
579584 name = getEntityDBName entity
580- (newcols', udefs, fdefs) = postgresMkColumns allDefs entity
585+ (newcols', udefs, fdefs) = postgresMkColumns overrides allDefs entity
581586 newcols = filter (not . safeToRemove entity . cName) newcols'
582587 udspair = map udToPair udefs
583588
@@ -822,10 +827,13 @@ refName (EntityNameDB table) (FieldNameDB column) =
822827 | otherwise = shortenNames overhead (x, y - 1 )
823828
824829postgresMkColumns
825- :: [EntityDef ] -> EntityDef -> ([Column ], [UniqueDef ], [ForeignDef ])
826- postgresMkColumns allDefs t =
830+ :: BackendSpecificOverrides
831+ -> [EntityDef ]
832+ -> EntityDef
833+ -> ([Column ], [UniqueDef ], [ForeignDef ])
834+ postgresMkColumns overrides allDefs t =
827835 mkColumns allDefs t $
828- setBackendSpecificForeignKeyName refName emptyBackendSpecificOverrides
836+ setBackendSpecificForeignKeyName refName overrides
829837
830838-- | Check if a column name is listed as the "safe to remove" in the entity
831839-- list.
0 commit comments