Header-Bild

Fehler beim Erstellen von Discourse-Backups nach Migration

Bei einem Kunden habe ich ein Discourse-Forum auf einen neuen Server migriert. Nach der Migration gab es aber das Problem, dass keine Backups mehr erstellt werden konnten. Die Fehlermeldung sah wie folgt aus:

[2025-01-20 12:23:10] Finalizing backup...
[2025-01-20 12:23:10] Finalizing database dump file: forum-name-2025-01-20-122223-v20250116024516.sql.gz
[2025-01-20 12:23:10] EXCEPTION: /var/www/discourse/lib/discourse.rb:139:in `exec': Failed to move database dump file.
mv: cannot move '/var/www/discourse/tmp/backups/default/2025-01-20-122223/dump.sql.gz' to '/var/www/discourse/public/backups/default/forum-name-2025-01-20-122223-v20250116024516.sql.gz': Permission denied

Die Lösung ist relativ einfach, Discourse hat keine Berechtigung, in das Verzeichnis mkdir -p /var/discourse/shared/standalone/backups/default zu schreiben.

Wie kommt es zu dem Fehler?

Beim Forum handelt es sich um ein migriertes Forum, sprich: Es wurde ein Backup wiederhergestellt. Um ein Backup einzuspielen, muss folgendes Verzeichnis angelegt werden:

mkdir -p /var/discourse/shared/standalone/backups/default

Dieses Verzeichnis wird bei der Migration aber nicht mit passenden Berechtigungen angelegt, weshalb nach der Migration die Backups scheitern.

Wie löse ich den Fehler?

Die Lösung gestaltet sich einfach, man muss einfach das angelegte Verzeichnis (samt Inhalt) wieder löschen:

rm -r -f /var/discourse/shared/standalone/backups/default

Discourse legt das Verzeichnis anschließend mit den passenden Berechtigungen neu an. Nach dem Löschen des Verzeichnisses sollten die Backups wieder funktionieren.

© 2025 Sebastian Widmann