WIP
This commit is contained in:
49
migrations/006_model_versions.sql
Normal file
49
migrations/006_model_versions.sql
Normal file
@@ -0,0 +1,49 @@
|
||||
-- Model versions table for tracking trained model deployments.
|
||||
-- Each training run can produce a model version for inference.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS model_versions (
|
||||
version_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
version VARCHAR(50) NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
description TEXT,
|
||||
model_path VARCHAR(512) NOT NULL,
|
||||
status VARCHAR(20) NOT NULL DEFAULT 'inactive',
|
||||
is_active BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
|
||||
-- Training association
|
||||
task_id UUID REFERENCES training_tasks(task_id) ON DELETE SET NULL,
|
||||
dataset_id UUID REFERENCES training_datasets(dataset_id) ON DELETE SET NULL,
|
||||
|
||||
-- Training metrics
|
||||
metrics_mAP DOUBLE PRECISION,
|
||||
metrics_precision DOUBLE PRECISION,
|
||||
metrics_recall DOUBLE PRECISION,
|
||||
document_count INTEGER NOT NULL DEFAULT 0,
|
||||
|
||||
-- Training configuration snapshot
|
||||
training_config JSONB,
|
||||
|
||||
-- File info
|
||||
file_size BIGINT,
|
||||
|
||||
-- Timestamps
|
||||
trained_at TIMESTAMP WITH TIME ZONE,
|
||||
activated_at TIMESTAMP WITH TIME ZONE,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Indexes
|
||||
CREATE INDEX IF NOT EXISTS idx_model_versions_version ON model_versions(version);
|
||||
CREATE INDEX IF NOT EXISTS idx_model_versions_status ON model_versions(status);
|
||||
CREATE INDEX IF NOT EXISTS idx_model_versions_is_active ON model_versions(is_active);
|
||||
CREATE INDEX IF NOT EXISTS idx_model_versions_task_id ON model_versions(task_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_model_versions_dataset_id ON model_versions(dataset_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_model_versions_created ON model_versions(created_at);
|
||||
|
||||
-- Ensure only one active model at a time
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_model_versions_single_active
|
||||
ON model_versions(is_active) WHERE is_active = TRUE;
|
||||
|
||||
-- Comment
|
||||
COMMENT ON TABLE model_versions IS 'Trained model versions for inference deployment';
|
||||
Reference in New Issue
Block a user