Readur/migrations/20250710000001_add_remainin...

46 lines
2.0 KiB
SQL

-- Add remaining dedicated metadata fields to documents table
-- These fields extract commonly used metadata from source_metadata JSON
-- into dedicated columns for better querying and indexing
-- Add source path (original file location from source system)
ALTER TABLE documents
ADD COLUMN IF NOT EXISTS source_path TEXT;
-- Add source type (e.g., 'web_upload', 'filesystem', 'webdav', 's3')
ALTER TABLE documents
ADD COLUMN IF NOT EXISTS source_type TEXT;
-- Add file permissions (Unix mode bits from source system)
ALTER TABLE documents
ADD COLUMN IF NOT EXISTS file_permissions INTEGER;
-- Add file owner (username or uid from source system)
ALTER TABLE documents
ADD COLUMN IF NOT EXISTS file_owner TEXT;
-- Add file group (groupname or gid from source system)
ALTER TABLE documents
ADD COLUMN IF NOT EXISTS file_group TEXT;
-- Create indexes for efficient querying
CREATE INDEX IF NOT EXISTS idx_documents_source_path ON documents(source_path)
WHERE source_path IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_documents_source_type ON documents(source_type)
WHERE source_type IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_documents_file_permissions ON documents(file_permissions)
WHERE file_permissions IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_documents_file_owner ON documents(file_owner)
WHERE file_owner IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_documents_file_group ON documents(file_group)
WHERE file_group IS NOT NULL;
-- Add helpful comments
COMMENT ON COLUMN documents.source_path IS 'Original path where the file was located in the source system';
COMMENT ON COLUMN documents.source_type IS 'Type of source where file was ingested from (web_upload, filesystem, webdav, s3, etc.)';
COMMENT ON COLUMN documents.file_permissions IS 'File permissions from source system (Unix mode bits)';
COMMENT ON COLUMN documents.file_owner IS 'File owner from source system (username or uid)';
COMMENT ON COLUMN documents.file_group IS 'File group from source system (groupname or gid)';