mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-26 14:07:00 -05:00
Fix database schema
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
-- Phase 1.1: Create ride_coaster_stats table
|
||||
CREATE TABLE IF NOT EXISTS public.ride_coaster_stats (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
ride_id UUID NOT NULL REFERENCES public.rides(id) ON DELETE CASCADE,
|
||||
stat_name TEXT NOT NULL,
|
||||
stat_value NUMERIC NOT NULL,
|
||||
unit TEXT,
|
||||
category TEXT,
|
||||
description TEXT,
|
||||
display_order INTEGER DEFAULT 0,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
UNIQUE(ride_id, stat_name)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_ride_coaster_stats_ride_id ON public.ride_coaster_stats(ride_id);
|
||||
|
||||
ALTER TABLE public.ride_coaster_stats ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- Drop existing policies if they exist
|
||||
DROP POLICY IF EXISTS "Public read coaster stats" ON public.ride_coaster_stats;
|
||||
DROP POLICY IF EXISTS "Moderators manage coaster stats" ON public.ride_coaster_stats;
|
||||
|
||||
CREATE POLICY "Public read coaster stats"
|
||||
ON public.ride_coaster_stats FOR SELECT
|
||||
USING (true);
|
||||
|
||||
CREATE POLICY "Moderators manage coaster stats"
|
||||
ON public.ride_coaster_stats FOR ALL
|
||||
USING (is_moderator(auth.uid()));
|
||||
|
||||
-- Phase 1.2: Drop technical_specs JSONB from ride_model_versions
|
||||
ALTER TABLE public.ride_model_versions
|
||||
DROP COLUMN IF EXISTS technical_specs;
|
||||
|
||||
-- Phase 1.3: Ensure RLS policies on relational tables
|
||||
ALTER TABLE public.ride_technical_specifications ENABLE ROW LEVEL SECURITY;
|
||||
ALTER TABLE public.ride_model_technical_specifications ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
DROP POLICY IF EXISTS "Public read ride tech specs" ON public.ride_technical_specifications;
|
||||
DROP POLICY IF EXISTS "Moderators manage ride tech specs" ON public.ride_technical_specifications;
|
||||
DROP POLICY IF EXISTS "Public read model tech specs" ON public.ride_model_technical_specifications;
|
||||
DROP POLICY IF EXISTS "Moderators manage model tech specs" ON public.ride_model_technical_specifications;
|
||||
|
||||
CREATE POLICY "Public read ride tech specs"
|
||||
ON public.ride_technical_specifications FOR SELECT
|
||||
USING (true);
|
||||
|
||||
CREATE POLICY "Moderators manage ride tech specs"
|
||||
ON public.ride_technical_specifications FOR ALL
|
||||
USING (is_moderator(auth.uid()));
|
||||
|
||||
CREATE POLICY "Public read model tech specs"
|
||||
ON public.ride_model_technical_specifications FOR SELECT
|
||||
USING (true);
|
||||
|
||||
CREATE POLICY "Moderators manage model tech specs"
|
||||
ON public.ride_model_technical_specifications FOR ALL
|
||||
USING (is_moderator(auth.uid()));
|
||||
Reference in New Issue
Block a user