Skip to content

Commit

Permalink
fixup! backend: migrate job tables to v2 schema (v2 phase 1)
Browse files Browse the repository at this point in the history
  • Loading branch information
uael committed Feb 4, 2025
1 parent a16f275 commit e9d0c72
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 2 deletions.
2 changes: 1 addition & 1 deletion backend/migrations/20250201124743_v2_job_queue_sync.up.sql
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ CREATE OR REPLACE FUNCTION v2_job_queue_before_update() RETURNS TRIGGER AS $$ BE
IF NEW.__args::TEXT IS DISTINCT FROM OLD.__args::TEXT THEN
UPDATE v2_job SET
args = NEW.__args,
preprocessed = CASE WHEN preprocessed = FALSE THEN TRUE END
preprocessed = CASE WHEN preprocessed = FALSE THEN TRUE ELSE preprocessed END
WHERE id = NEW.id;
END IF;
-- `v2_job_runtime`:
Expand Down
18 changes: 17 additions & 1 deletion backend/migrations/20250201124744_v2_job_completed_sync.up.sql
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ BEGIN
);
END IF;
-- 3. v2 -> flow_status._metadata.preprocessed_args`
IF job.script_entrypoint_override = '__WM_PREPROCESSOR' AND job.preprocessed = TRUE
IF job.kind = 'script' AND job.preprocessed = TRUE
AND (NEW.flow_status IS NULL OR jsonb_typeof(NEW.flow_status) = 'object')
THEN
NEW.flow_status := jsonb_set(
Expand Down Expand Up @@ -134,3 +134,19 @@ CREATE OR REPLACE TRIGGER v2_job_completed_before_insert_trigger
FOR EACH ROW
WHEN (pg_trigger_depth() < 1) -- Prevent infinite loop v1 <-> v2
EXECUTE FUNCTION v2_job_completed_before_insert();

CREATE OR REPLACE FUNCTION v2_job_completed_before_update() RETURNS TRIGGER AS $$ BEGIN
-- `v2_job`: Only `args` are updated
IF NEW.__args::TEXT IS DISTINCT FROM OLD.__args::TEXT THEN
UPDATE v2_job SET
args = NEW.__args,
preprocessed = CASE WHEN preprocessed = FALSE THEN TRUE ELSE preprocessed END
WHERE id = NEW.id;
END IF;
END $$ LANGUAGE plpgsql;

CREATE OR REPLACE TRIGGER v2_job_completed_before_update_trigger
BEFORE UPDATE ON v2_job_completed
FOR EACH ROW
WHEN (pg_trigger_depth() < 1) -- Prevent infinite loop v1 <-> v2
EXECUTE FUNCTION v2_job_completed_before_update();

0 comments on commit e9d0c72

Please sign in to comment.