hlascelles/que-scheduler

View on GitHub
lib/que/scheduler/migrations/3/up.sql

Summary

Maintainability
Test Coverage
ALTER TABLE que_scheduler_audit ADD PRIMARY KEY (scheduler_job_id);

CREATE TABLE que_scheduler_audit_enqueued (
  scheduler_job_id integer      NOT NULL REFERENCES que_scheduler_audit (scheduler_job_id),
  job_class        varchar(255) NOT NULL,
  queue            varchar(255),
  priority         integer,
  args             jsonb        NOT NULL
);

CREATE INDEX que_scheduler_audit_enqueued_job_class ON que_scheduler_audit_enqueued USING btree (job_class);
CREATE INDEX que_scheduler_audit_enqueued_args ON que_scheduler_audit_enqueued USING btree (args);

WITH rows AS (SELECT scheduler_job_id, json_array_elements(jobs_enqueued::json) AS enqueued FROM que_scheduler_audit)
INSERT INTO que_scheduler_audit_enqueued(scheduler_job_id, args, job_class)
SELECT scheduler_job_id, (enqueued->>'args')::jsonb AS args, enqueued->>'job_class' AS job_class FROM rows;

ALTER TABLE que_scheduler_audit DROP COLUMN next_run_at;
ALTER TABLE que_scheduler_audit DROP COLUMN jobs_enqueued;