Ctrl K
ComunidadGuías…

deploy/migrations/0052_bootstrap_update_jobs.up.sql

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
CREATE TABLE IF NOT EXISTS public.bootstrap_update_jobs (
    id bigint GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
    kind character varying(32) NOT NULL,
    user_id bigint NOT NULL REFERENCES public.users(id) ON DELETE CASCADE,
    auth_key_id bigint DEFAULT 0 NOT NULL,
    session_id bigint DEFAULT 0 NOT NULL,
    message_box_id integer NOT NULL,
    status character varying(16) DEFAULT 'pending'::character varying NOT NULL,
    attempts integer DEFAULT 0 NOT NULL,
    last_error text DEFAULT ''::text NOT NULL,
    created_at timestamp with time zone DEFAULT now() NOT NULL,
    updated_at timestamp with time zone DEFAULT now() NOT NULL,
    ready_at timestamp with time zone,
    published_at timestamp with time zone,
    CONSTRAINT bootstrap_update_jobs_kind_check CHECK ((kind)::text = ANY (ARRAY[('login_message'::character varying)::text])),
    CONSTRAINT bootstrap_update_jobs_status_check CHECK ((status)::text = ANY (ARRAY[('pending'::character varying)::text, ('ready'::character varying)::text, ('publishing'::character varying)::text, ('published'::character varying)::text, ('failed'::character varying)::text])),
    CONSTRAINT bootstrap_update_jobs_message_box_fkey FOREIGN KEY (user_id, message_box_id) REFERENCES public.message_boxes(owner_user_id, box_id) ON DELETE CASCADE
);

CREATE UNIQUE INDEX IF NOT EXISTS bootstrap_update_jobs_unique_login
    ON public.bootstrap_update_jobs (kind, user_id, message_box_id);

CREATE INDEX IF NOT EXISTS bootstrap_update_jobs_ready_idx
    ON public.bootstrap_update_jobs (COALESCE(ready_at, created_at), user_id, id)
    WHERE (status)::text = 'ready'::text;

CREATE INDEX IF NOT EXISTS bootstrap_update_jobs_publishing_stale_idx
    ON public.bootstrap_update_jobs (updated_at, user_id, id)
    WHERE (status)::text = 'publishing'::text;

CREATE INDEX IF NOT EXISTS user_update_events_new_message_box_idx
    ON public.user_update_events (user_id, message_box_id, pts)
    WHERE (event_type)::text = 'new_message'::text
      AND message_box_id IS NOT NULL;