From 09dbe8d1feae0f721f945f1b07b32c9c46a3e930 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Thu, 26 May 2022 19:56:16 +0200 Subject: [PATCH] chore: fix migration --- src/Model/Migration/Definitions.hs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Model/Migration/Definitions.hs b/src/Model/Migration/Definitions.hs index 7ceffa67a..80e97dd07 100644 --- a/src/Model/Migration/Definitions.hs +++ b/src/Model/Migration/Definitions.hs @@ -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