Usuwa wszystkie kampanie i ich kolejki odbiorcow, zeby stare kampanie zawieszone w statusie SENDING nie ruszyly po wdrozeniu wysylki. Leady, zgody marketingowe i grupy docelowe zostaja nietkniete. Domyslnie proba na sucho (ROLLBACK), zapis tylko z -v apply=1 - tak samo jak scripts/cleanup-test-data.sql. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,53 @@
|
|||||||
|
-- Czyszczenie kampanii marketingowych: usuwa WSZYSTKIE kampanie razem z ich kolejkami
|
||||||
|
-- odbiorcow (tabele campaigns i campaign_recipients).
|
||||||
|
--
|
||||||
|
-- Po co: do 2026-09-23 zaden proces nie wysylal kampanii z kolejki - kampania wchodzila
|
||||||
|
-- w status "wysylanie" i tak zostawala. Po wdrozeniu wysylki (CampaignSender) takie stare
|
||||||
|
-- kampanie ruszylyby naprawde. Ten skrypt czysci tabele przed pierwsza prawdziwa wysylka.
|
||||||
|
--
|
||||||
|
-- Domyslnie PROBA NA SUCHO: wszystko dzieje sie w jednej transakcji, skrypt wypisuje stan
|
||||||
|
-- przed i po, po czym robi ROLLBACK. Zapis nastepuje tylko z -v apply=1.
|
||||||
|
--
|
||||||
|
-- docker exec -i polskalokalnie-db-1 psql -U polskalokalnie -d polskalokalnie < scripts/cleanup-campaigns.sql
|
||||||
|
-- docker exec -i polskalokalnie-db-1 psql -U polskalokalnie -d polskalokalnie -v apply=1 < scripts/cleanup-campaigns.sql
|
||||||
|
--
|
||||||
|
-- NIE rusza: leadow ani ich zgod marketingowych, grup docelowych, zapytan o reklame,
|
||||||
|
-- konfiguracji SMTP/SMS. Znika wylacznie historia kampanii i ich kolejki wysylkowe.
|
||||||
|
|
||||||
|
\set ON_ERROR_STOP on
|
||||||
|
\if :{?apply}
|
||||||
|
\else
|
||||||
|
\set apply 0
|
||||||
|
\endif
|
||||||
|
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
\echo '=== Stan przed czyszczeniem ==='
|
||||||
|
SELECT 'kampanie' AS co, count(*) AS ile FROM campaigns
|
||||||
|
UNION ALL SELECT 'pozycje w kolejkach', count(*) FROM campaign_recipients
|
||||||
|
UNION ALL SELECT 'leady (zostaja)', count(*) FROM leads
|
||||||
|
UNION ALL SELECT 'grupy docelowe (zostaja)', count(*) FROM target_groups;
|
||||||
|
|
||||||
|
\echo '=== Kampanie wedlug statusu (te w SENDING/SCHEDULED ruszylyby po wdrozeniu wysylki) ==='
|
||||||
|
SELECT status, count(*) AS ile FROM campaigns GROUP BY status ORDER BY status;
|
||||||
|
|
||||||
|
\echo '=== Ile wiadomosci czeka w kolejkach ==='
|
||||||
|
SELECT r.status, count(*) AS ile FROM campaign_recipients r GROUP BY r.status ORDER BY r.status;
|
||||||
|
|
||||||
|
-- Najpierw kolejki (maja campaign_id), potem same kampanie.
|
||||||
|
DELETE FROM campaign_recipients;
|
||||||
|
DELETE FROM campaigns;
|
||||||
|
|
||||||
|
\echo '=== Stan po czyszczeniu ==='
|
||||||
|
SELECT 'kampanie' AS co, count(*) AS ile FROM campaigns
|
||||||
|
UNION ALL SELECT 'pozycje w kolejkach', count(*) FROM campaign_recipients
|
||||||
|
UNION ALL SELECT 'leady (nietkniete)', count(*) FROM leads
|
||||||
|
UNION ALL SELECT 'grupy docelowe (nietkniete)', count(*) FROM target_groups;
|
||||||
|
|
||||||
|
\if :apply
|
||||||
|
COMMIT;
|
||||||
|
\echo '>>> ZAPISANO ZMIANY (COMMIT) - kampanie i kolejki usuniete'
|
||||||
|
\else
|
||||||
|
ROLLBACK;
|
||||||
|
\echo '>>> PROBA NA SUCHO - nic nie zostalo zmienione (ROLLBACK). Zapis: -v apply=1'
|
||||||
|
\endif
|
||||||
Reference in New Issue
Block a user