35 lines
1.4 KiB
SQL
35 lines
1.4 KiB
SQL
-- AtlasOS - Calypso
|
|
-- Backup Jobs Schema
|
|
-- Version: 9.0
|
|
|
|
-- Backup jobs table
|
|
CREATE TABLE IF NOT EXISTS backup_jobs (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
job_id INTEGER NOT NULL UNIQUE, -- Bareos job ID
|
|
job_name VARCHAR(255) NOT NULL,
|
|
client_name VARCHAR(255) NOT NULL,
|
|
job_type VARCHAR(50) NOT NULL, -- 'Backup', 'Restore', 'Verify', 'Copy', 'Migrate'
|
|
job_level VARCHAR(50) NOT NULL, -- 'Full', 'Incremental', 'Differential', 'Since'
|
|
status VARCHAR(50) NOT NULL, -- 'Running', 'Completed', 'Failed', 'Canceled', 'Waiting'
|
|
bytes_written BIGINT NOT NULL DEFAULT 0,
|
|
files_written INTEGER NOT NULL DEFAULT 0,
|
|
duration_seconds INTEGER,
|
|
started_at TIMESTAMP,
|
|
ended_at TIMESTAMP,
|
|
error_message TEXT,
|
|
storage_name VARCHAR(255),
|
|
pool_name VARCHAR(255),
|
|
volume_name VARCHAR(255),
|
|
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
updated_at TIMESTAMP NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
-- Indexes for performance
|
|
CREATE INDEX IF NOT EXISTS idx_backup_jobs_job_id ON backup_jobs(job_id);
|
|
CREATE INDEX IF NOT EXISTS idx_backup_jobs_job_name ON backup_jobs(job_name);
|
|
CREATE INDEX IF NOT EXISTS idx_backup_jobs_client_name ON backup_jobs(client_name);
|
|
CREATE INDEX IF NOT EXISTS idx_backup_jobs_status ON backup_jobs(status);
|
|
CREATE INDEX IF NOT EXISTS idx_backup_jobs_started_at ON backup_jobs(started_at DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_backup_jobs_job_type ON backup_jobs(job_type);
|
|
|