瀏覽代碼

Run SQL migration

gpt-engineer-app[bot] 5 月之前
父節點
當前提交
637953c80e
共有 1 個文件被更改,包括 37 次插入0 次删除
  1. 37 0
      supabase/migrations/20250707092106-1f3bb355-294b-4003-91a2-5fed66935c68.sql

+ 37 - 0
supabase/migrations/20250707092106-1f3bb355-294b-4003-91a2-5fed66935c68.sql

@@ -0,0 +1,37 @@
+-- Migration pour corriger les données existantes et maintenir la cohérence du nombre d'articles
+
+-- Mettre à jour le article_count pour tous les flux existants
+UPDATE public.feeds 
+SET article_count = (
+  SELECT COUNT(*)
+  FROM public.articles
+  WHERE articles.feed_id = feeds.id
+);
+
+-- Créer une fonction pour maintenir automatiquement le article_count
+CREATE OR REPLACE FUNCTION public.update_feed_article_count()
+RETURNS TRIGGER AS $$
+BEGIN
+  -- Mise à jour du compteur d'articles pour le flux concerné
+  UPDATE public.feeds 
+  SET article_count = (
+    SELECT COUNT(*)
+    FROM public.articles
+    WHERE feed_id = COALESCE(NEW.feed_id, OLD.feed_id)
+  )
+  WHERE id = COALESCE(NEW.feed_id, OLD.feed_id);
+  
+  RETURN COALESCE(NEW, OLD);
+END;
+$$ LANGUAGE plpgsql;
+
+-- Créer des triggers pour maintenir automatiquement le article_count
+CREATE TRIGGER update_feed_article_count_on_insert
+  AFTER INSERT ON public.articles
+  FOR EACH ROW
+  EXECUTE FUNCTION public.update_feed_article_count();
+
+CREATE TRIGGER update_feed_article_count_on_delete
+  AFTER DELETE ON public.articles
+  FOR EACH ROW
+  EXECUTE FUNCTION public.update_feed_article_count();