Skip to content
This repository was archived by the owner on Sep 1, 2026. It is now read-only.

Commit 6fceb71

Browse files
committed
Repair SetPhaseEvent events with null array value breaking projects
1 parent 72a13a4 commit 6fceb71

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

‎wizard-server/src/Wizard/Database/Migration/Production/Migration.hs‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ import qualified Wizard.Database.Migration.Production.Migration_0065_idToUuid.Mi
7070
import qualified Wizard.Database.Migration.Production.Migration_0066_tcKnowledgeModel.Migration as M_0066
7171
import qualified Wizard.Database.Migration.Production.Migration_0067_openIdClient.Migration as M_0067
7272
import qualified Wizard.Database.Migration.Production.Migration_0068_roles.Migration as M_0068
73+
import qualified Wizard.Database.Migration.Production.Migration_0069_setPhaseEventFix.Migration as M_0069
7374

7475
migrationDefinitions :: [MigrationDefinition]
7576
migrationDefinitions =
@@ -141,4 +142,5 @@ migrationDefinitions =
141142
, M_0066.definition
142143
, M_0067.definition
143144
, M_0068.definition
145+
, M_0069.definition
144146
]
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
module Wizard.Database.Migration.Production.Migration_0069_setPhaseEventFix.Migration (
2+
definition,
3+
) where
4+
5+
import Control.Monad.Logger
6+
import Control.Monad.Reader (liftIO)
7+
import Data.Pool (Pool, withResource)
8+
import Database.PostgreSQL.Migration.Entity
9+
import Database.PostgreSQL.Simple
10+
11+
definition = (meta, migrate)
12+
13+
meta = MigrationMeta {mmNumber = 69, mmName = "Fix set phase event", mmDescription = "Repair SetPhaseEvent project events with a NULL array element in value so affected projects can be opened again"}
14+
15+
migrate :: Pool Connection -> LoggingT IO (Maybe Error)
16+
migrate dbPool = do
17+
let sql = "UPDATE project_event SET value = '{}' WHERE event_type = 'SetPhaseEvent' AND array_position(value, NULL) IS NOT NULL;"
18+
let action conn = execute_ conn sql
19+
liftIO $ withResource dbPool action
20+
return Nothing

0 commit comments

Comments
 (0)