Query to fix modlog

The modlog page can break if anyone has been banned with an expiry too far into the future, I grabbed this query to fix it from the github issue a while back and refined it a little if it's useful to anyone:

BEGIN;
-- The modlog UI breaks for bans too far in the future
SELECT * FROM mod_ban WHERE expires > now() + INTERVAL '10 years';
-- Lets just make them permanent as an easy fix lol
UPDATE mod_ban SET expires = NULL WHERE expires > now() + INTERVAL '10 years';
-- See our changes
SELECT * FROM mod_ban WHERE expires > now() + INTERVAL '10 years';
ROLLBACK;
-- replace ROLBACK; with COMMIT; if you're happy

This will make any ban with an expiry >10 years into the future permanent and fix your modlog. If this happens a lot it might be worth making this a trigger in your lemmy db.

8 points · 2 comments · view on lemmy.world

2 Comments

PriorProject@lemmy.world · 1 pts · 3y (1 reply)

Is there an issue for this in the GitHub project? It sounds like you've done the hard work of diagnosing the issue and an upstream fix seems likely a modest effort given this info.

nick@campfyre.nickwebster.dev · 3 pts · 3y

Yes, there are a few issues in the lemmy-ui including this PR with a temp fix: https://github.com/LemmyNet/lemmy-ui/pull/2058