Readur/migrations/20240101000012_add_enhanced...

57 lines
3.2 KiB
SQL

-- Add enhanced OCR processing settings with conservative defaults
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_brightness_boost REAL DEFAULT 1.0;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_contrast_multiplier REAL DEFAULT 1.2;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_noise_reduction_level INTEGER DEFAULT 1;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_sharpening_strength REAL DEFAULT 0.5;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_morphological_operations BOOLEAN DEFAULT false;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_adaptive_threshold_window_size INTEGER DEFAULT 15;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_histogram_equalization BOOLEAN DEFAULT false;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_upscale_factor REAL DEFAULT 1.0;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_max_image_width INTEGER DEFAULT 3000;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_max_image_height INTEGER DEFAULT 3000;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS save_processed_images BOOLEAN DEFAULT false;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_quality_threshold_brightness REAL DEFAULT 0.3;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_quality_threshold_contrast REAL DEFAULT 0.2;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_quality_threshold_noise REAL DEFAULT 0.7;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_quality_threshold_sharpness REAL DEFAULT 0.3;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS ocr_skip_enhancement BOOLEAN DEFAULT false;
-- Create processed_images table for storing preprocessed images
CREATE TABLE IF NOT EXISTS processed_images (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
document_id UUID NOT NULL REFERENCES documents(id) ON DELETE CASCADE,
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
original_image_path TEXT NOT NULL,
processed_image_path TEXT NOT NULL,
processing_parameters JSONB NOT NULL DEFAULT '{}',
processing_steps TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
image_width INTEGER NOT NULL,
image_height INTEGER NOT NULL,
file_size BIGINT NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- Create indexes for the processed_images table
CREATE INDEX IF NOT EXISTS idx_processed_images_document_id ON processed_images(document_id);
CREATE INDEX IF NOT EXISTS idx_processed_images_user_id ON processed_images(user_id);
CREATE INDEX IF NOT EXISTS idx_processed_images_created_at ON processed_images(created_at);
-- Update existing settings with conservative default values for new OCR settings
UPDATE settings SET
ocr_brightness_boost = 1.0,
ocr_contrast_multiplier = 1.2,
ocr_noise_reduction_level = 1,
ocr_sharpening_strength = 0.5,
ocr_morphological_operations = false,
ocr_adaptive_threshold_window_size = 15,
ocr_histogram_equalization = false,
ocr_upscale_factor = 1.0,
ocr_max_image_width = 3000,
ocr_max_image_height = 3000,
save_processed_images = false,
ocr_quality_threshold_brightness = 0.3,
ocr_quality_threshold_contrast = 0.2,
ocr_quality_threshold_noise = 0.7,
ocr_quality_threshold_sharpness = 0.3,
ocr_skip_enhancement = false
WHERE ocr_brightness_boost IS NULL;