Anyone who’s seen a couple different production database environments is likely familiar with the “soft deletion” pattern – instead of deleting data directly via DELETE statement, tables get an extra deleted_at timestamp and deletion is performed with an update statement instead: UPDATE foo SET deleted_at = now() WHERE id = $1; The concept behind soft deletion is to make deletion safer, and revers