#jinja2: lstrip_blocks: "True" #!/bin/bash # this script is used to workaround the https://github.com/matrix-org/rust-synapse-compress-state/issues/78, # and it is based on postgres' cli-non-interactive and https://github.com/matrix-org/rust-synapse-compress-state/issues/78#issuecomment-1409932869 docker run \ --rm \ --user={{ matrix_synapse_auto_compressor_uid }}:{{ matrix_synapse_auto_compressor_gid }} \ --cap-drop=ALL \ --interactive \ --network={{ matrix_synapse_auto_compressor_container_network }} \ --env-file={{ matrix_synapse_auto_compressor_base_path }}/env \ {{ matrix_synapse_auto_compressor_postgres_image }} \ psql -h {{ matrix_synapse_auto_compressor_database_hostname }} \ <<_EOF BEGIN; DELETE FROM state_compressor_state AS scs WHERE NOT EXISTS (SELECT * FROM rooms AS r WHERE r.room_id = scs.room_id); DELETE FROM state_compressor_state AS scs WHERE scs.room_id in (SELECT DISTINCT room_id FROM state_compressor_state AS scs2 WHERE scs2.current_head IS NOT NULL AND NOT EXISTS (SELECT * FROM state_groups AS sg WHERE sg.id = scs2.current_head)); DELETE FROM state_compressor_progress AS scp WHERE NOT EXISTS (SELECT * FROM state_compressor_state AS scs WHERE scs.room_id = scp.room_id); COMMIT; _EOF # vim: ft=sh