CREATE TABLE task ( id uuid PRIMARY KEY DEFAULT uuid_generate_v4(), created_at timestamptz NOT NULL DEFAULT clock_timestamp(), modified_at timestamptz NOT NULL DEFAULT clock_timestamp(), completed_at timestamptz NULL DEFAULT NULL, scheduled_at timestamptz NOT NULL, priority smallint DEFAULT 100, queue text NOT NULL, name text NOT NULL, props bytea NOT NULL, error text NULL DEFAULT NULL, retry_num smallint NOT NULL DEFAULT 0, status text NOT NULL DEFAULT 'new' ); CREATE INDEX task__scheduled_at__queue__idx ON task (scheduled_at, queue); CREATE TRIGGER task__modified_at__tgr BEFORE UPDATE ON task FOR EACH ROW EXECUTE PROCEDURE update_modified_at(); CREATE TABLE scheduled_task ( id text PRIMARY KEY, created_at timestamptz NOT NULL DEFAULT clock_timestamp(), modified_at timestamptz NOT NULL DEFAULT clock_timestamp(), executed_at timestamptz NULL DEFAULT NULL, cron_expr text NOT NULL ); CREATE TRIGGER scheduled_task__modified_at__tgr BEFORE UPDATE ON scheduled_task FOR EACH ROW EXECUTE PROCEDURE update_modified_at();