SQL

CREATE TABLE "scheduled_job"  (
  "id" integer PRIMARY KEY NOT NULL,
  "name" varchar(255) NOT NULL,
  "workflowId" varchar(36),
  "nodeId" varchar(36),
  "taskType" varchar(128) NOT NULL,
  "payload" text NOT NULL DEFAULT ('{}'),
  "kind" varchar(16) NOT NULL,
  "cronExpression" varchar(255),
  "timezone" varchar(64),
  "intervalSeconds" integer,
  "fireAt" datetime(3),
  "enabled" boolean NOT NULL DEFAULT (true),
  "nextRunAt" datetime(3),
  "lastFiredAt" datetime(3),
  "maxAttempts" integer NOT NULL DEFAULT (1),
  "createdAt" datetime(3) NOT NULL DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')),
  "updatedAt" datetime(3) NOT NULL DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')),
  "recurrenceUnit" varchar(16),
  "recurrenceSize" int,
  CONSTRAINT "CHK_scheduled_job_recurrence_unit" CHECK (("recurrenceUnit" IN ('hours', 'days', 'weeks', 'months'))),
  CONSTRAINT "CHK_scheduled_job_recurrence_size" CHECK (("recurrenceSize" >= 2)),
  CONSTRAINT "CHK_scheduled_job_cron_expression" CHECK (("kind" <> 'cron' OR "cronExpression" IS NOT NULL)),
  CONSTRAINT "CHK_scheduled_job_interval_seconds" CHECK (("kind" <> 'interval' OR "intervalSeconds" IS NOT NULL)),
  CONSTRAINT "CHK_scheduled_job_fire_at" CHECK (("kind" <> 'one_off' OR "fireAt" IS NOT NULL)),
  CONSTRAINT "CHK_scheduled_job_kind" CHECK ("kind" IN ('cron', 'interval', 'one_off', 'recurring_cron')),
  CONSTRAINT "CHK_scheduled_job_recurring_cron" CHECK ("kind" <> 'recurring_cron' OR ("cronExpression" IS NOT NULL AND "recurrenceUnit" IS NOT NULL AND "recurrenceSize" IS NOT NULL)),
  CONSTRAINT "FK_scheduled_job_workflowId" FOREIGN KEY ("workflowId") REFERENCES "workflow_published_version" ("workflowId") ON DELETE CASCADE ON UPDATE NO ACTION
)

+ Add column

Columns

Column Data type Allow null Primary key Actions
id INTEGER Rename | Drop
name varchar(255) Rename | Drop
workflowId varchar(36) Rename | Drop
nodeId varchar(36) Rename | Drop
taskType varchar(128) Rename | Drop
payload TEXT Rename | Drop
kind varchar(16) Rename | Drop
cronExpression varchar(255) Rename | Drop
timezone varchar(64) Rename | Drop
intervalSeconds INTEGER Rename | Drop
fireAt datetime(3) Rename | Drop
enabled boolean Rename | Drop
nextRunAt datetime(3) Rename | Drop
lastFiredAt datetime(3) Rename | Drop
maxAttempts INTEGER Rename | Drop
createdAt datetime(3) Rename | Drop
updatedAt datetime(3) Rename | Drop
recurrenceUnit varchar(16) Rename | Drop
recurrenceSize INT Rename | Drop

Foreign Keys

Column Destination
workflowId workflow_published_version.workflowId

+ Add index

Indexes

Name Columns Unique SQL Drop?
IDX_scheduled_job_name name SQL
CREATE UNIQUE INDEX "IDX_scheduled_job_name"
ON "scheduled_job" ("name")
Drop
IDX_scheduled_job_nextRunAt nextRunAt SQL
CREATE INDEX "IDX_scheduled_job_nextRunAt"
ON "scheduled_job" ("nextRunAt") WHERE "enabled" = true AND "nextRunAt" IS NOT NULL
Drop
IDX_scheduled_job_workflowId workflowId SQL
CREATE INDEX "IDX_scheduled_job_workflowId"
ON "scheduled_job" ("workflowId") WHERE "workflowId" IS NOT NULL
Drop