Soft-Delete: Beiträge als [deleted] erhalten statt löschen
- entry.deleted; entrySelect LEFT JOIN + COALESCE(username)
- POST /entry/{pid}/delete: deleted=1, Inhalt/Bild/Autor geleert, Zeile bleibt
- Konto-Löschung soft-deletet die eigenen Beiträge (statt hartem DELETE),
damit fremde Antworten nicht verwaisen
- Frontend: [deleted]-Platzhalter im Feed, Löschen-Button auf Focus-Seite
- notes/migrations.md: ALTER TABLE deleted
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -46,3 +46,20 @@ UPDATE entry SET last_activity = created_at WHERE last_activity IS NULL;
|
||||
Bestehende Zeilen werden so zu Root-Beiträgen (`reply_to = 0`, `reply_count = 0`)
|
||||
mit `last_activity = created_at`. Nicht idempotent — die `ALTER TABLE`-Zeilen nur
|
||||
einmalig ausführen.
|
||||
|
||||
---
|
||||
|
||||
## Soft-Delete-Spalte in `entry`
|
||||
|
||||
**Wann:** beim Deploy der Soft-Delete-Version gegen eine bestehende `kver.db`.
|
||||
|
||||
**Hintergrund:** Statt Beiträge hart zu löschen werden sie als `[deleted]`-Platzhalter
|
||||
markiert (`deleted = 1`, Inhalt/Bild/Autor geleert), damit Antworten nicht verwaisen.
|
||||
Das Frontend und die Feeds erkennen gelöschte Beiträge an dieser Spalte.
|
||||
|
||||
**Migration:**
|
||||
```sql
|
||||
ALTER TABLE entry ADD COLUMN deleted INTEGER NOT NULL DEFAULT 0;
|
||||
```
|
||||
|
||||
Bestehende Beiträge bleiben damit sichtbar (`deleted = 0`). Nur einmalig ausführen.
|
||||
|
||||
Reference in New Issue
Block a user