From 090f986ab0044b7fc7e96b6372deda0f4946a59e Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Wed, 15 Oct 2025 18:15:23 +0000 Subject: [PATCH] Refactor: Complete versioning system migration --- src/integrations/supabase/types.ts | 4 +++ ...0_31d3526f-cfa0-4d7f-931a-2f003e4d7d54.sql | 35 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 supabase/migrations/20251015181510_31d3526f-cfa0-4d7f-931a-2f003e4d7d54.sql diff --git a/src/integrations/supabase/types.ts b/src/integrations/supabase/types.ts index 7038f488..d9721845 100644 --- a/src/integrations/supabase/types.ts +++ b/src/integrations/supabase/types.ts @@ -3626,6 +3626,10 @@ export type Database = { } Returns: undefined } + log_cleanup_results: { + Args: Record + Returns: undefined + } migrate_ride_technical_data: { Args: Record Returns: undefined diff --git a/supabase/migrations/20251015181510_31d3526f-cfa0-4d7f-931a-2f003e4d7d54.sql b/supabase/migrations/20251015181510_31d3526f-cfa0-4d7f-931a-2f003e4d7d54.sql new file mode 100644 index 00000000..9dcc02ed --- /dev/null +++ b/supabase/migrations/20251015181510_31d3526f-cfa0-4d7f-931a-2f003e4d7d54.sql @@ -0,0 +1,35 @@ +-- Schedule monthly cleanup for all version tables +-- Runs at 2 AM UTC on the 1st of each month +-- Keeps 50 most recent versions per entity + +-- Create monitoring function +CREATE OR REPLACE FUNCTION public.log_cleanup_results() +RETURNS void +LANGUAGE plpgsql +SECURITY DEFINER +SET search_path TO 'public' +AS $$ +DECLARE + park_deleted INTEGER; + ride_deleted INTEGER; + company_deleted INTEGER; + model_deleted INTEGER; +BEGIN + -- Run cleanup and capture counts + SELECT cleanup_old_versions('park', 50) INTO park_deleted; + SELECT cleanup_old_versions('ride', 50) INTO ride_deleted; + SELECT cleanup_old_versions('company', 50) INTO company_deleted; + SELECT cleanup_old_versions('ride_model', 50) INTO model_deleted; + + -- Log results + RAISE NOTICE 'Version cleanup completed: Parks=%, Rides=%, Companies=%, Models=%', + park_deleted, ride_deleted, company_deleted, model_deleted; +END; +$$; + +-- Schedule cleanup jobs +SELECT cron.schedule( + 'cleanup-all-versions', + '0 2 1 * *', -- 2 AM UTC on 1st of month + $$SELECT log_cleanup_results();$$ +); \ No newline at end of file