arbritage/migration_edge_cache.sql

29 lines
1 KiB
SQL

-- Step 1: Recreate search_cache table based on new robust spec
DROP TABLE IF EXISTS search_cache;
CREATE TABLE search_cache (
query_key TEXT PRIMARY KEY, -- sha256(kind + "|" + query_norm)
query_raw TEXT NOT NULL,
query_norm TEXT NOT NULL,
kind TEXT NOT NULL CHECK (kind IN ('products', 'opportunities')),
results JSONB DEFAULT '[]'::jsonb,
sources JSONB DEFAULT '[]'::jsonb,
fetched_at TIMESTAMPTZ DEFAULT NOW(),
expires_at TIMESTAMPTZ NOT NULL
);
-- Indexes for performance
CREATE INDEX idx_search_cache_query_norm ON search_cache(query_norm);
CREATE INDEX idx_search_cache_expires_at ON search_cache(expires_at);
-- RLS Policy (Open for backend/service role, read-only for anon if needed, but mainly managed by function)
ALTER TABLE search_cache ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Enable read/write for service role" ON search_cache
USING (true)
WITH CHECK (true);
CREATE POLICY "Enable read for authenticated users" ON search_cache
FOR SELECT
TO authenticated
USING (true);