007_sidecar, 008_processing, 009_duplicate_groups migrations. Tag, sidecar, job, batch, plugin, pipeline, duplicate repos.
43 lines
1.3 KiB
SQL
43 lines
1.3 KiB
SQL
CREATE TABLE jobs (
|
|
job_id UUID PRIMARY KEY,
|
|
job_type TEXT NOT NULL,
|
|
target_asset_id UUID,
|
|
batch_id UUID,
|
|
status TEXT NOT NULL DEFAULT 'queued',
|
|
priority INTEGER NOT NULL DEFAULT 0,
|
|
payload JSONB NOT NULL DEFAULT '{}',
|
|
result_data JSONB,
|
|
retry_count INTEGER NOT NULL DEFAULT 0,
|
|
max_retries INTEGER NOT NULL DEFAULT 3,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
started_at TIMESTAMPTZ,
|
|
completed_at TIMESTAMPTZ,
|
|
error_message TEXT
|
|
);
|
|
|
|
CREATE INDEX idx_jobs_status_priority ON jobs(status, priority DESC);
|
|
CREATE INDEX idx_jobs_batch ON jobs(batch_id);
|
|
|
|
CREATE TABLE job_batches (
|
|
batch_id UUID PRIMARY KEY,
|
|
batch_type TEXT NOT NULL,
|
|
total_jobs INTEGER NOT NULL DEFAULT 0,
|
|
completed_count INTEGER NOT NULL DEFAULT 0,
|
|
failed_count INTEGER NOT NULL DEFAULT 0,
|
|
status TEXT NOT NULL DEFAULT 'in_progress'
|
|
);
|
|
|
|
CREATE TABLE plugins (
|
|
plugin_id UUID PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
plugin_type TEXT NOT NULL,
|
|
is_enabled BOOLEAN NOT NULL DEFAULT true,
|
|
configuration JSONB NOT NULL DEFAULT '{}'
|
|
);
|
|
|
|
CREATE TABLE processing_pipelines (
|
|
pipeline_id UUID PRIMARY KEY,
|
|
trigger_event TEXT NOT NULL,
|
|
steps JSONB NOT NULL DEFAULT '[]'
|
|
);
|