Skip to content

Instantly share code, notes, and snippets.

@jackyvo
Last active April 12, 2022 17:08
Show Gist options
  • Save jackyvo/3477012b6e14bc5778f93780b42f7da1 to your computer and use it in GitHub Desktop.
Save jackyvo/3477012b6e14bc5778f93780b42f7da1 to your computer and use it in GitHub Desktop.
clean_users.sql
ALTER TABLE users ADD COLUMN need_deleted BOOLEAN DEFAULT true;
UPDATE users SET need_deleted=false where id IN (select DISTINCT(user_id) from enrollments);
DELETE FROM eportfolio_entries WHERE eportfolio_id in (select id FROM eportfolios where user_id IN (SELECT id FROM users where need_deleted=true));
DELETE FROM eportfolio_categories WHERE eportfolio_id in (select id FROM eportfolios where user_id IN (SELECT id FROM users where need_deleted=true));
DELETE FROM eportfolios where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM account_users where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM user_profiles where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM user_merge_data_items where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM user_merge_data where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM submissions where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM web_conference_participants where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM web_conferences where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM user_preference_values where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM access_tokens where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM wiki_pages where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM page_comments where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM discussion_topic_participants where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM auditor_course_records where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM discussion_entries where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM notification_policies where communication_channel_id in (select id from communication_channels where user_id IN (SELECT id FROM users where need_deleted=true));
DELETE FROM communication_channels where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM session_persistence_tokens where pseudonym_id in (select id from pseudonyms where user_id IN (SELECT id FROM users where need_deleted=true));
DELETE FROM auditor_authentication_records where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM account_reports where user_id IN (SELECT id FROM users where need_deleted=true);
DELETE FROM user_account_associations where user_id IN (SELECT id FROM users where need_deleted=true);
ALTER TABLE pseudonyms DISABLE TRIGGER ALL;
DELETE FROM pseudonyms where user_id IN (SELECT id FROM users where need_deleted=true);
ALTER TABLE pseudonyms ENABLE TRIGGER ALL;
ALTER TABLE users DISABLE TRIGGER ALL;
DELETE FROM users WHERE need_deleted=true;
ALTER TABLE users ENABLE TRIGGER ALL;
ALTER TABLE users DROP COLUMN need_deleted;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment