/
Andromeda141
/
Adventure-service
Обзор
Документация
Войти
/
Andromeda141
/
Adventure-service
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
poll
migration_poll_fixes.sql
32 строки
1 KB
andrewvnukov
Polls 1.0 + Profile
07 июн 2026, 15:15
07 июн 2026, 15:15
e6f3e2e
Код
Авторство
О чём код?
-- Migration: poll history fixes -- 1. Триггер лимита истории голосований (макс. 10 на поездку) CREATE OR REPLACE FUNCTION fn_limit_poll_history() RETURNS TRIGGER AS $$ BEGIN IF NEW.status = OLD.status OR NEW.status = 'active' THEN RETURN NEW; END IF; DELETE FROM activity_polls WHERE id IN ( SELECT id FROM activity_polls WHERE trip_id = NEW.trip_id AND status != 'active' ORDER BY expires_at DESC OFFSET 10 ); RETURN NEW; END; $$ LANGUAGE plpgsql; DROP TRIGGER IF EXISTS trg_limit_poll_history ON activity_polls; CREATE TRIGGER trg_limit_poll_history AFTER UPDATE OF status ON activity_polls FOR EACH ROW EXECUTE FUNCTION fn_limit_poll_history(); -- 2. Восстановить pending-активности которые были удалены при rejected/expired -- (если такие уже есть в БД — их нет, FK cascaded, ничего не делаем) -- Новые rejected/expired голосования будут хранить активность с is_pending=TRUE.