mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 06:51:12 -05:00
41 lines
1.7 KiB
SQL
41 lines
1.7 KiB
SQL
-- Add coaster-specific multi-select fields for track material, support material, and propulsion method
|
|
|
|
-- Update rides table
|
|
ALTER TABLE rides
|
|
ALTER COLUMN track_material TYPE TEXT[] USING
|
|
CASE
|
|
WHEN track_material IS NULL THEN NULL
|
|
ELSE ARRAY[track_material]
|
|
END,
|
|
ADD COLUMN IF NOT EXISTS support_material TEXT[],
|
|
ADD COLUMN IF NOT EXISTS propulsion_method TEXT[];
|
|
|
|
-- Update ride_versions table
|
|
ALTER TABLE ride_versions
|
|
ALTER COLUMN track_material TYPE TEXT[] USING
|
|
CASE
|
|
WHEN track_material IS NULL THEN NULL
|
|
ELSE ARRAY[track_material]
|
|
END,
|
|
ADD COLUMN IF NOT EXISTS support_material TEXT[],
|
|
ADD COLUMN IF NOT EXISTS propulsion_method TEXT[];
|
|
|
|
-- Update ride_submissions table
|
|
ALTER TABLE ride_submissions
|
|
ALTER COLUMN track_material TYPE TEXT[] USING
|
|
CASE
|
|
WHEN track_material IS NULL THEN NULL
|
|
ELSE ARRAY[track_material]
|
|
END,
|
|
ADD COLUMN IF NOT EXISTS support_material TEXT[],
|
|
ADD COLUMN IF NOT EXISTS propulsion_method TEXT[];
|
|
|
|
-- Create indexes for efficient filtering
|
|
CREATE INDEX IF NOT EXISTS idx_rides_track_material ON rides USING GIN(track_material);
|
|
CREATE INDEX IF NOT EXISTS idx_rides_support_material ON rides USING GIN(support_material);
|
|
CREATE INDEX IF NOT EXISTS idx_rides_propulsion_method ON rides USING GIN(propulsion_method);
|
|
|
|
-- Add comments for documentation
|
|
COMMENT ON COLUMN rides.track_material IS 'Array of track materials used in the ride (e.g., wood, steel, hybrid)';
|
|
COMMENT ON COLUMN rides.support_material IS 'Array of support materials used in the ride (e.g., steel, wood, concrete)';
|
|
COMMENT ON COLUMN rides.propulsion_method IS 'Array of propulsion methods used in the ride (e.g., chain_lift, lsm_launch, hydraulic_launch)'; |