2026.06.04 frontend építés közben
This commit is contained in:
91
backend/scripts/purge_test_data.sql
Normal file
91
backend/scripts/purge_test_data.sql
Normal file
@@ -0,0 +1,91 @@
|
||||
-- Ground Zero Database Purge Script
|
||||
-- Deletes ALL test users and related data
|
||||
|
||||
BEGIN;
|
||||
|
||||
-- 1. First, identify and count test users
|
||||
SELECT 'Test users to delete:' as info;
|
||||
SELECT id, email
|
||||
FROM identity.users
|
||||
WHERE (
|
||||
email ILIKE '%test%' OR
|
||||
email ILIKE '%noreply%' OR
|
||||
email ILIKE '%profibot%' OR
|
||||
email ILIKE '%example.com' OR
|
||||
email ILIKE '%@gmail.com'
|
||||
) AND is_deleted = false
|
||||
ORDER BY id;
|
||||
|
||||
-- 2. Delete from gamification tables (if they exist)
|
||||
DO $$
|
||||
BEGIN
|
||||
-- Check if table exists before deleting
|
||||
IF EXISTS (SELECT FROM information_schema.tables WHERE table_schema = 'gamification' AND table_name = 'user_stats') THEN
|
||||
DELETE FROM gamification.user_stats
|
||||
WHERE user_id IN (
|
||||
SELECT id FROM identity.users
|
||||
WHERE (
|
||||
email ILIKE '%test%' OR
|
||||
email ILIKE '%noreply%' OR
|
||||
email ILIKE '%profibot%' OR
|
||||
email ILIKE '%example.com' OR
|
||||
email ILIKE '%@gmail.com'
|
||||
) AND is_deleted = false
|
||||
);
|
||||
RAISE NOTICE 'Deleted from gamification.user_stats';
|
||||
END IF;
|
||||
|
||||
IF EXISTS (SELECT FROM information_schema.tables WHERE table_schema = 'gamification' AND table_name = 'points_ledger') THEN
|
||||
DELETE FROM gamification.points_ledger
|
||||
WHERE user_id IN (
|
||||
SELECT id FROM identity.users
|
||||
WHERE (
|
||||
email ILIKE '%test%' OR
|
||||
email ILIKE '%noreply%' OR
|
||||
email ILIKE '%profibot%' OR
|
||||
email ILIKE '%example.com' OR
|
||||
email ILIKE '%@gmail.com'
|
||||
) AND is_deleted = false
|
||||
);
|
||||
RAISE NOTICE 'Deleted from gamification.points_ledger';
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- 3. Delete wallets (must be done before users due to FK constraint)
|
||||
DELETE FROM identity.wallets
|
||||
WHERE user_id IN (
|
||||
SELECT id FROM identity.users
|
||||
WHERE (
|
||||
email ILIKE '%test%' OR
|
||||
email ILIKE '%noreply%' OR
|
||||
email ILIKE '%profibot%' OR
|
||||
email ILIKE '%example.com' OR
|
||||
email ILIKE '%@gmail.com'
|
||||
) AND is_deleted = false
|
||||
);
|
||||
|
||||
-- 4. Finally delete the test users
|
||||
DELETE FROM identity.users
|
||||
WHERE (
|
||||
email ILIKE '%test%' OR
|
||||
email ILIKE '%noreply%' OR
|
||||
email ILIKE '%profibot%' OR
|
||||
email ILIKE '%example.com' OR
|
||||
email ILIKE '%@gmail.com'
|
||||
) AND is_deleted = false;
|
||||
|
||||
-- 5. Delete orphaned persons
|
||||
DELETE FROM identity.persons
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM identity.users
|
||||
WHERE users.person_id = persons.id
|
||||
);
|
||||
|
||||
-- 6. Show results
|
||||
SELECT 'Purge completed. Summary:' as info;
|
||||
SELECT
|
||||
(SELECT COUNT(*) FROM identity.users WHERE email ILIKE '%test%' AND is_deleted = false) as remaining_test_users,
|
||||
(SELECT COUNT(*) FROM identity.users WHERE email ILIKE '%noreply%' AND is_deleted = false) as remaining_noreply_users,
|
||||
(SELECT COUNT(*) FROM identity.users WHERE email ILIKE '%profibot%' AND is_deleted = false) as remaining_profibot_users;
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user