chore: fix migration
This commit is contained in:
parent
4bdf4c185f
commit
09dbe8d1fe
@ -1067,19 +1067,19 @@ customMigrations = mapF $ \case
|
||||
ALTER TABLE "term" DROP COLUMN "active";
|
||||
|]
|
||||
|
||||
Migration20220521WorkflowArchivation -> do
|
||||
Migration20220521WorkflowArchivation -> whenM (and2M (tableExists "workflow_workflow") $ not <$> columnExists "workflow_workflow" "archived") $ do
|
||||
now <- liftIO getCurrentTime
|
||||
whenM (and2M (tableExists "workflow_workflow") $ not <$> columnExists "workflow_workflow" "archived") $ do
|
||||
[executeQQ| ALTER TABLE "workflow_workflow" ADD "archived" timestamp with time zone; |]
|
||||
mArchiveAfter <- lift $ view _appWorkflowWorkflowArchiveAfter
|
||||
let getWorkflows = [queryQQ| SELECT "workflow_workflow"."id", "workflow_workflow"."state"->-1->'time', "workflow_workflow"."state"->-1->'to', "shared_workflow_graph"."graph" FROM "workflow_workflow" INNER JOIN "shared_workflow_graph" ON "workflow_workflow"."graph" = "shared_workflow_graph"."hash"; |]
|
||||
migrateArchived [ fromPersistValue -> Right (wwId :: WorkflowWorkflowId), fromPersistValue -> Right wpTime, fromPersistValue -> Right wpTo, fromPersistValue -> Right (wGraph :: DBWorkflowGraph) ] = maybeT (return ()) $ do
|
||||
archiveAfter <- hoistMaybe mArchiveAfter
|
||||
WGN{wgnFinal} <- hoistMaybe . Map.lookup wpTo $ wgNodes wGraph
|
||||
let wwArchived = const (max now $ archiveAfter `addUTCTime` wpTime) <$> wgnFinal
|
||||
lift [executeQQ| UPDATE "workflow_workflow" SET "archived" = #{wwArchived} WHERE "id" = #{wwId}; |]
|
||||
migrateArchived _ = return ()
|
||||
in runConduit $ getWorkflows .| C.mapM_ migrateArchived
|
||||
-- mArchiveAfter <- lift $ view _appWorkflowWorkflowArchiveAfter
|
||||
let mArchiveAfter = Just (5270400 :: NominalDiffTime)
|
||||
[executeQQ| ALTER TABLE "workflow_workflow" ADD "archived" timestamp with time zone; |]
|
||||
let getWorkflows = [queryQQ| SELECT "workflow_workflow"."id", "workflow_workflow"."state"->-1->'time', "workflow_workflow"."state"->-1->'to', "shared_workflow_graph"."graph" FROM "workflow_workflow" INNER JOIN "shared_workflow_graph" ON "workflow_workflow"."graph" = "shared_workflow_graph"."hash"; |]
|
||||
migrateArchived [ fromPersistValue -> Right (wwId :: WorkflowWorkflowId), fmap Aeson.fromJSON . fromPersistValue -> Right (Aeson.Success wpTime), fmap Aeson.fromJSON . fromPersistValue -> Right (Aeson.Success wpTo), fromPersistValue -> Right (wGraph :: DBWorkflowGraph) ] = maybeT (return ()) $ do
|
||||
archiveAfter <- hoistMaybe mArchiveAfter
|
||||
WGN{wgnFinal} <- hoistMaybe . Map.lookup wpTo $ wgNodes wGraph
|
||||
let wwArchived = const (max now $ archiveAfter `addUTCTime` wpTime) <$> wgnFinal
|
||||
lift [executeQQ| UPDATE "workflow_workflow" SET "archived" = #{wwArchived} WHERE "id" = #{wwId}; |]
|
||||
migrateArchived _ = return ()
|
||||
in runConduit $ getWorkflows .| C.mapM_ migrateArchived
|
||||
|
||||
|
||||
tableExists :: MonadIO m => Text -> ReaderT SqlBackend m Bool
|
||||
|
||||
Reference in New Issue
Block a user