diff --git a/supabase/migrations/20260304221500_add_organizations_and_org_owned_tablos.sql b/supabase/migrations/20260304221500_add_organizations_and_org_owned_tablos.sql index 2eb6daf..1bb82d1 100644 --- a/supabase/migrations/20260304221500_add_organizations_and_org_owned_tablos.sql +++ b/supabase/migrations/20260304221500_add_organizations_and_org_owned_tablos.sql @@ -139,15 +139,40 @@ WHERE p.id = t.owner_id DO $$ DECLARE recovery_organization_id integer; + has_notify_trigger boolean; BEGIN IF EXISTS (SELECT 1 FROM public.tablos WHERE organization_id IS NULL) THEN INSERT INTO public.organizations (name) VALUES ('Recovered Legacy Workspace') RETURNING id INTO recovery_organization_id; - UPDATE public.tablos t - SET organization_id = recovery_organization_id - WHERE t.organization_id IS NULL; + SELECT EXISTS ( + SELECT 1 + FROM pg_trigger + WHERE tgrelid = 'public.tablos'::regclass + AND tgname = 'notify_users_on_tablos' + AND NOT tgisinternal + ) INTO has_notify_trigger; + + BEGIN + IF has_notify_trigger THEN + EXECUTE 'ALTER TABLE public.tablos DISABLE TRIGGER notify_users_on_tablos'; + END IF; + + UPDATE public.tablos t + SET organization_id = recovery_organization_id + WHERE t.organization_id IS NULL; + + IF has_notify_trigger THEN + EXECUTE 'ALTER TABLE public.tablos ENABLE TRIGGER notify_users_on_tablos'; + END IF; + EXCEPTION + WHEN OTHERS THEN + IF has_notify_trigger THEN + EXECUTE 'ALTER TABLE public.tablos ENABLE TRIGGER notify_users_on_tablos'; + END IF; + RAISE; + END; END IF; END; $$;