29 lines
854 B
SQL
29 lines
854 B
SQL
CREATE TABLE integration_configs (
|
|
id UUID PRIMARY KEY,
|
|
config_key TEXT NOT NULL UNIQUE,
|
|
provider TEXT NOT NULL,
|
|
is_enabled BOOLEAN NOT NULL DEFAULT TRUE,
|
|
config_json JSONB NOT NULL,
|
|
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
updated_at TIMESTAMP NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE TABLE jobs (
|
|
id UUID PRIMARY KEY,
|
|
queue_name TEXT NOT NULL,
|
|
job_type TEXT NOT NULL,
|
|
status TEXT NOT NULL DEFAULT 'queued',
|
|
payload_json JSONB NOT NULL,
|
|
attempts INTEGER NOT NULL DEFAULT 0,
|
|
max_attempts INTEGER NOT NULL DEFAULT 3,
|
|
available_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
processed_at TIMESTAMP,
|
|
failed_at TIMESTAMP,
|
|
error_message TEXT,
|
|
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
updated_at TIMESTAMP NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX jobs_queue_name_status_available_at_idx
|
|
ON jobs(queue_name, status, available_at);
|