Skip to content
Snippets Groups Projects
nuke-room-from-db.sh 2.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/bin/bash
    
    ## CAUTION:
    ## This script will remove (hopefully) all trace of the given room ID from
    ## your homeserver.db
    
    ## Do not run it lightly.
    
    
    set -e
    
    if [ "$1" == "-h" ] || [ "$1" == "" ]; then
      echo "Call with ROOM_ID as first option and then pipe it into the database. So for instance you might run"
      echo " nuke-room-from-db.sh <room_id> | sqlite3 homeserver.db"
      echo "or"
      echo " nuke-room-from-db.sh <room_id> | psql --dbname=synapse"
      exit
    fi
    
    
    ROOMID="$1"
    
    
    DELETE FROM event_forward_extremities WHERE room_id = '$ROOMID';
    DELETE FROM event_backward_extremities WHERE room_id = '$ROOMID';
    DELETE FROM event_edges WHERE room_id = '$ROOMID';
    DELETE FROM room_depth WHERE room_id = '$ROOMID';
    DELETE FROM state_forward_extremities WHERE room_id = '$ROOMID';
    DELETE FROM events WHERE room_id = '$ROOMID';
    DELETE FROM event_json WHERE room_id = '$ROOMID';
    DELETE FROM state_events WHERE room_id = '$ROOMID';
    DELETE FROM current_state_events WHERE room_id = '$ROOMID';
    
    DELETE FROM room_memberships WHERE room_id = '$ROOMID';
    
    DELETE FROM feedback WHERE room_id = '$ROOMID';
    DELETE FROM topics WHERE room_id = '$ROOMID';
    DELETE FROM room_names WHERE room_id = '$ROOMID';
    
    DELETE FROM rooms WHERE room_id = '$ROOMID';
    
    DELETE FROM room_hosts WHERE room_id = '$ROOMID';
    DELETE FROM room_aliases WHERE room_id = '$ROOMID';
    DELETE FROM state_groups WHERE room_id = '$ROOMID';
    DELETE FROM state_groups_state WHERE room_id = '$ROOMID';
    DELETE FROM receipts_graph WHERE room_id = '$ROOMID';
    DELETE FROM receipts_linearized WHERE room_id = '$ROOMID';
    
    DELETE FROM event_search WHERE room_id = '$ROOMID'; 
    
    DELETE FROM guest_access WHERE room_id = '$ROOMID';
    DELETE FROM history_visibility WHERE room_id = '$ROOMID';
    DELETE FROM room_tags WHERE room_id = '$ROOMID';
    DELETE FROM room_tags_revisions WHERE room_id = '$ROOMID';
    DELETE FROM room_account_data WHERE room_id = '$ROOMID';
    DELETE FROM event_push_actions WHERE room_id = '$ROOMID';
    DELETE FROM local_invites WHERE room_id = '$ROOMID';
    DELETE FROM pusher_throttle WHERE room_id = '$ROOMID';
    DELETE FROM event_reports WHERE room_id = '$ROOMID';
    DELETE FROM public_room_list_stream WHERE room_id = '$ROOMID';
    DELETE FROM stream_ordering_to_exterm WHERE room_id = '$ROOMID';
    DELETE FROM event_auth WHERE room_id = '$ROOMID';
    DELETE FROM appservice_room_list WHERE room_id = '$ROOMID';
    VACUUM;
    
    EOF