
Paperless-ngx DB Update
Paperless Ngx ist ein Dokumentenserver. Dieser läuft bei mir als Docker Container schon lange ohne Probleme. Nun kam aber die Zeit, dass das Update des Paperless Ngx Webservers nicht mehr automatisch funktionierte, da die Entwickler die zugrundeliegende Datenbank Version erhöht hatten. Da in meinem Setup PostgresSQL zum Einsatz kommt, ist hier ein automatisches Update nicht möglich. Daher muss dies mit den folgenden Schritten manuell durchgeführt werden.
- Backup erstellen
- Datebank löschen
- Weitere Ordner löschen
- Docker-compose.yml aktualisieren und Container hochfahren
- Backup einspielen
Fangen wir an:
1. Backup erstellen
Da ich meine Container mit Portainer verwalte, geht das erstellen des Backups so. Als erstes muss man ein Backup-Verzeichnis in einem Ordner des Containers erstellen. In diesen kann dann das Backup exportiert werden. Dazu nutze man in der Portainer Konsole den Befehl document_exporter </path/to/your/backup/folder>.
2. Datenbank löschen
Da die Datenbank bei mir nicht in einem Docker Volume gespeichert ist, muss einfach der gemountete Ordner gelöscht werden. Schon ist die Datenbank weg.
3. Weitere Ordner löschen
Damit der Import des Backups richtig funktioniert, muss hierzu der data und der media Ordner gelöscht werden. Am Besten sollte voher noch eine Sicherung der Ordner erstellt werden. Dies ist vor allem wichtig, wenn man das Backup in einem der beiden Ordner erstellt hat. Dazu einfach kurz tar -cvf data.tar ./data und tar -cvf media.tar ./media ausführen. Nun können die beiden Ordner gelöscht werden. Hier kann entweder nur der Inhalt gelöscht werden, oder der ganze Ordner. Im zweiten Fall muss dieser natürlich wieder leer angelegt werden.
4. Docker-compose.yml anpassen und Container hochfahren
Nun muss die docker-compose.yml in den gewünschten Zustand gebracht werden. Hier können die Templates von Paperless Ngx unter Paperless Ngx Compose Templetes als Hilfe genutzt werden.
Da ich meine Container mit Portainer verwalte, ist nur noch ein Klick auf Update the stack notwendig und schon fahren die Container wieder hoch.
5. Backup einspielen
Da Paperless Ngx nun wieder läuft, fehlen nur noch die ganzen Dateien. Dazu öffnen wir wieder die Console für den Webserver-Container und geben dort den Befehl document_importer </path/to/your/backup/folder> ein.
Damit ist das ganze Update erfolgreich durchlaufen und Paperless läuft mit aktualisierter Datenbank mit den zuvor vorhandenen Dokumenten.