diff --git a/supabase/migrations/20251029134644_f7178e15-82dc-460f-b170-b1a7609402b7.sql b/supabase/migrations/20251029134644_f7178e15-82dc-460f-b170-b1a7609402b7.sql new file mode 100644 index 00000000..4679c664 --- /dev/null +++ b/supabase/migrations/20251029134644_f7178e15-82dc-460f-b170-b1a7609402b7.sql @@ -0,0 +1,78 @@ +-- Full Database Purge (Keep Users Only) - Disable Triggers +-- WARNING: This will delete ALL content data while preserving user accounts + +-- Disable all triggers temporarily +SET session_replication_role = replica; + +-- 1. Clear submission items first (depends on content_submissions) +DELETE FROM public.submission_items; + +-- 2. Clear timeline events (has FK to content_submissions) +DELETE FROM public.entity_timeline_events; + +-- 3. Clear specific submission type tables +DELETE FROM public.park_submissions; +DELETE FROM public.ride_submissions; +DELETE FROM public.company_submissions; +DELETE FROM public.ride_model_submissions; + +-- 4. Clear main content submissions (now safe) +DELETE FROM public.content_submissions; + +-- 5. Clear user-generated content +DELETE FROM public.reviews; +DELETE FROM public.reports; +DELETE FROM public.photos; + +-- 6. Clear user lists +DELETE FROM public.list_items; +DELETE FROM public.user_top_lists; + +-- 7. Clear user ride tracking +DELETE FROM public.user_ride_credits; + +-- 8. Clear historical records +DELETE FROM public.historical_rides; +DELETE FROM public.historical_parks; + +-- 9. Clear entity versions (history) +DELETE FROM public.ride_versions; +DELETE FROM public.park_versions; +DELETE FROM public.company_versions; +DELETE FROM public.ride_model_versions; +DELETE FROM public.entity_versions_archive; + +-- 10. Clear main entity tables (no dependencies left) +DELETE FROM public.rides; +DELETE FROM public.parks; +DELETE FROM public.companies; +DELETE FROM public.ride_models; + +-- 11. Clear park-related tables +DELETE FROM public.park_location_history; +DELETE FROM public.park_operating_hours; + +-- 12. Clear analytics/tracking +DELETE FROM public.entity_page_views; + +-- 13. Clear contact/support +DELETE FROM public.contact_email_threads; +DELETE FROM public.contact_submissions; + +-- 14. Clear notification logs +DELETE FROM public.notification_logs; + +-- Re-enable all triggers +SET session_replication_role = DEFAULT; + +-- Verify user data remains intact +DO $$ +DECLARE + user_count INTEGER; + profile_count INTEGER; +BEGIN + SELECT COUNT(*) INTO user_count FROM auth.users; + SELECT COUNT(*) INTO profile_count FROM public.profiles; + + RAISE NOTICE 'Database purge complete. Users preserved: %, Profiles: %', user_count, profile_count; +END $$; \ No newline at end of file