Files
thrilltrack-explorer/supabase/migrations/20251002192802_fd7c5b11-83f0-4658-8cdd-2fe57ff3f084.sql
gpt-engineer-app[bot] f9825eefbb Fix database migration
2025-10-02 19:28:29 +00:00

23 lines
1.5 KiB
SQL

-- Deprecate legacy JSON columns in rides table
-- These columns violate the architectural rule: "NEVER STORE JSON IN SQL COLUMNS"
-- Use relational tables instead:
-- - ride_technical_specifications (for technical_specs)
-- - ride_coaster_statistics (for coaster_stats)
-- - ride_name_history (for former_names)
-- Mark columns as deprecated with comments
COMMENT ON COLUMN public.rides.technical_specs IS '⚠️ DEPRECATED: Use ride_technical_specifications table instead. This JSON column violates data normalization principles and should not be used for new data.';
COMMENT ON COLUMN public.rides.coaster_stats IS '⚠️ DEPRECATED: Use ride_coaster_statistics table instead. This JSON column violates data normalization principles and should not be used for new data.';
COMMENT ON COLUMN public.rides.former_names IS '⚠️ DEPRECATED: Use ride_name_history table instead. This JSON column violates data normalization principles and should not be used for new data.';
-- Set default to NULL to prevent accidental usage
ALTER TABLE public.rides
ALTER COLUMN technical_specs SET DEFAULT NULL,
ALTER COLUMN coaster_stats SET DEFAULT NULL,
ALTER COLUMN former_names SET DEFAULT NULL;
-- Same for ride_models table
COMMENT ON COLUMN public.ride_models.technical_specs IS '⚠️ DEPRECATED: Use ride_model_technical_specifications table instead. This JSON column violates data normalization principles and should not be used for new data.';
ALTER TABLE public.ride_models
ALTER COLUMN technical_specs SET DEFAULT NULL;