Files
mnote/supabase/migrations/20260109072800_20260109_add_rag_delete_triggers.sql
T
2026-01-10 10:35:21 +08:00

64 lines
1.7 KiB
PL/PgSQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 说明:为“删除文件时清理 LightRAG 资源”补齐删除触发器,避免垃圾堆积。
-- 编码:UTF-8
-- media_assets:硬删除时也要入队(让 ingest_service 删除 LightRAG doc
create or replace function public.enqueue_rag_for_media_asset_delete()
returns trigger
language plpgsql
as $function$
declare
v_user_id uuid;
begin
select user_id
into v_user_id
from public.documents
where id = old.document_id;
perform public.upsert_rag_index_source(
old.workspace_id,
'media_asset',
old.id,
old.document_id,
coalesce(old.created_by, v_user_id),
timezone('utc', now())
);
return old;
end;
$function$;
drop trigger if exists enqueue_rag_for_media_asset_delete on public.media_assets;
create trigger enqueue_rag_for_media_asset_delete
after delete on public.media_assets
for each row execute function public.enqueue_rag_for_media_asset_delete();
-- mindmap_nodes:硬删除节点时,也入队(让 ingest_service 删除/重建 mindmap 对应索引)
create or replace function public.enqueue_rag_for_mindmap_node_delete()
returns trigger
language plpgsql
as $function$
declare
v_user_id uuid;
begin
select user_id
into v_user_id
from public.documents
where id = old.document_id;
perform public.upsert_rag_index_source(
old.workspace_id,
'mindmap',
old.mindmap_id,
old.document_id,
v_user_id,
timezone('utc', now())
);
return old;
end;
$function$;
drop trigger if exists enqueue_rag_for_mindmap_node_delete on public.mindmap_nodes;
create trigger enqueue_rag_for_mindmap_node_delete
after delete on public.mindmap_nodes
for each row execute function public.enqueue_rag_for_mindmap_node_delete();