GOXY / supabase_migration.sql
lasagnakanada
Deploy GOXY ML Service to HuggingFace Space
3d6cc8a
-- GOXY Database Migration for Supabase
-- Run this in Supabase SQL Editor: https://supabase.com/dashboard/project/_/sql
-- Step 1: Create ENUM types
CREATE TYPE task_type_enum AS ENUM (
'general', 'greeting', 'faq', 'support', 'creative'
);
CREATE TYPE toxicity_level_enum AS ENUM (
'none', 'low', 'medium', 'high'
);
CREATE TYPE feedback_type_enum AS ENUM (
'good', 'bad', 'report'
);
-- Step 2: Create responses table
CREATE TABLE responses (
id UUID PRIMARY KEY,
input_message TEXT NOT NULL,
input_context TEXT,
task_type task_type_enum NOT NULL,
max_length INTEGER NOT NULL,
temperature FLOAT NOT NULL,
top_p FLOAT NOT NULL,
generated_text TEXT NOT NULL,
quality_score FLOAT NOT NULL,
toxicity_score FLOAT NOT NULL,
confidence FLOAT NOT NULL,
toxicity_level toxicity_level_enum NOT NULL,
generation_time_ms FLOAT NOT NULL,
tokens_generated INTEGER NOT NULL,
model_name VARCHAR(100),
model_version VARCHAR(50),
user_id VARCHAR(100),
is_approved BOOLEAN,
created_at TIMESTAMP WITH TIME ZONE NOT NULL,
updated_at TIMESTAMP WITH TIME ZONE NOT NULL
);
-- Step 3: Create feedbacks table
CREATE TABLE feedbacks (
id UUID PRIMARY KEY,
response_id UUID NOT NULL,
feedback_type feedback_type_enum NOT NULL,
comment TEXT,
user_id VARCHAR(100),
created_at TIMESTAMP WITH TIME ZONE NOT NULL,
FOREIGN KEY (response_id) REFERENCES responses(id) ON DELETE CASCADE
);
-- Step 4: Create indexes for responses
CREATE INDEX idx_responses_id ON responses(id);
CREATE INDEX idx_responses_quality_score ON responses(quality_score);
CREATE INDEX idx_responses_toxicity_score ON responses(toxicity_score);
CREATE INDEX idx_responses_toxicity_level ON responses(toxicity_level);
CREATE INDEX idx_responses_created_at ON responses(created_at);
CREATE INDEX idx_responses_user_id ON responses(user_id);
CREATE INDEX idx_responses_created_at_desc ON responses(created_at DESC);
CREATE INDEX idx_responses_toxicity_quality ON responses(toxicity_score, quality_score);
CREATE INDEX idx_responses_task_type_created ON responses(task_type, created_at);
-- Step 5: Create indexes for feedbacks
CREATE INDEX idx_feedbacks_id ON feedbacks(id);
CREATE INDEX idx_feedbacks_response_id ON feedbacks(response_id);
CREATE INDEX idx_feedbacks_feedback_type ON feedbacks(feedback_type);
CREATE INDEX idx_feedbacks_user_id ON feedbacks(user_id);
CREATE INDEX idx_feedbacks_created_at ON feedbacks(created_at);
CREATE INDEX idx_feedbacks_response_created ON feedbacks(response_id, created_at);
CREATE INDEX idx_feedbacks_type_created ON feedbacks(feedback_type, created_at);
-- Done! Tables created successfully.