paperless/README.md aktualisiert
This commit is contained in:
@@ -18,4 +18,143 @@
|
|||||||
<p></p>
|
<p></p>
|
||||||
<h5>gegebenfalls noch die NFS Tools installieren</h5>
|
<h5>gegebenfalls noch die NFS Tools installieren</h5>
|
||||||
<pre>apt install nfs-common</pre>
|
<pre>apt install nfs-common</pre>
|
||||||
<p></p>
|
<p></p>
|
||||||
|
|
||||||
|
|
||||||
|
# Update Paperless-ngx mit DB-upgrade !
|
||||||
|
|
||||||
|
### Schritt 1: Datenbank sichern und vorbereiten
|
||||||
|
|
||||||
|
1. **Stoppen Sie den `webserver`-Dienst**, um zu verhindern, dass die Anwendung während des Backups Daten in die Datenbank schreibt. Der `db`-Dienst muss dabei **laufen**.
|
||||||
|
|
||||||
|
```
|
||||||
|
docker compose stop webserver
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Überprüfen Sie, ob der `db`-Dienst läuft**.
|
||||||
|
|
||||||
|
```
|
||||||
|
docker compose ps
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Der Status von `paperless_db` sollte `Up` sein. Wenn er nicht läuft, müssen Sie die Logs mit `docker compose logs db` überprüfen, um das Problem zu beheben, bevor Sie fortfahren.
|
||||||
|
|
||||||
|
3. **Führen Sie den Backup-Befehl aus**. Dieser Befehl startet `pg_dump` innerhalb des laufenden `db`-Containers und speichert die Ausgabe in eine Datei auf Ihrem Host.
|
||||||
|
|
||||||
|
```
|
||||||
|
docker compose exec db pg_dump -U paperless -Fc paperless > paperless_db_backup.dump
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Eine komprimierte Backup-Datei namens `paperless_db_backup.dump` wird im selben Verzeichnis wie Ihre `docker-compose.yml` erstellt.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
### Schritt 2: `docker-compose.yml` aktualisieren
|
||||||
|
|
||||||
|
1. **Stoppen Sie alle Dienste**, um eine saubere Ausgangsbasis zu schaffen.
|
||||||
|
|
||||||
|
```
|
||||||
|
docker compose down
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Bearbeiten Sie Ihre `docker-compose.yml`-Datei.**
|
||||||
|
|
||||||
|
- Ändern Sie das `image` für den `db`-Dienst von `postgres:13` auf `postgres:17`.
|
||||||
|
|
||||||
|
- **Wichtig:** Ändern Sie den `volumes`-Pfad für die neuen Datenbankdaten, um zu verhindern, dass die alten Daten überschrieben werden. PostgreSQL-Versionen sind nicht direkt kompatibel.
|
||||||
|
|
||||||
|
|
||||||
|
YAML
|
||||||
|
|
||||||
|
```
|
||||||
|
# ...
|
||||||
|
services:
|
||||||
|
# ...
|
||||||
|
db:
|
||||||
|
image: docker.io/library/postgres:17 # Version geändert
|
||||||
|
container_name: paperless_db
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- ./db_v17_data:/var/lib/postgresql/data # WICHTIG: Pfad geändert
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: paperless
|
||||||
|
POSTGRES_USER: paperless
|
||||||
|
POSTGRES_PASSWORD: paperless
|
||||||
|
labels:
|
||||||
|
- "com.centurylinklabs.watchtower.monitor-only=true"
|
||||||
|
# ...
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Starten Sie nur den neuen Datenbank-Container**.
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
docker compose up -d db
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Dadurch wird ein neuer, leerer PostgreSQL 17-Container erstellt.
|
||||||
|
|
||||||
|
|
||||||
|
4. **Importieren über einen temporären Ordner**.
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
docker compose cp paperless_db_backup.dump db:/tmp/paperless_db_backup.dump
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Dieser Befehl kopiert Ihre lokale Backup-Datei in das `/tmp`-Verzeichnis des laufenden `db`-Containers.
|
||||||
|
|
||||||
|
2. **Stellen Sie das Backup im Container wieder her:**
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
docker compose exec db sh -c "pg_restore -U paperless -d paperless /tmp/paperless_db_backup.dump"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Hierbei übergeben Sie den Pfad der Datei direkt an den `pg_restore`-Befehl, anstatt die Eingabe umzuleiten.
|
||||||
|
|
||||||
|
### Letzter Schritt: Dienste starten und bereinigen
|
||||||
|
|
||||||
|
1. **Starten Sie die Paperless-ngx-Dienste:** Führen Sie den folgenden Befehl aus, um alle Dienste, einschließlich des `webserver`s, zu starten.
|
||||||
|
|
||||||
|
Bash
|
||||||
|
|
||||||
|
```
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Überprüfen Sie die Funktionalität:** Öffnen Sie die Paperless-ngx-Weboberfläche in Ihrem Browser. Melden Sie sich an und überprüfen Sie, ob Ihre Dokumente korrekt angezeigt werden und die Anwendung wie erwartet funktioniert.
|
||||||
|
|
||||||
|
3. **Bereinigen Sie die temporären Dateien:** Wenn alles einwandfrei läuft, können Sie die erstellten Sicherungsdateien löschen.
|
||||||
|
|
||||||
|
Bash
|
||||||
|
|
||||||
|
```
|
||||||
|
rm paperless_db_backup.dump
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Sie können auch das alte Datenbank-Volume löschen, um Speicherplatz freizugeben.
|
||||||
|
|
||||||
|
4. **Löschen Sie die alte Datenbank (optional):** Falls Sie das alte Datenbank-Volume nicht mehr benötigen, können Sie es ebenfalls entfernen. **Seien Sie hier vorsichtig, um keine wichtigen Daten zu verlieren.**
|
||||||
|
|
||||||
|
Bash
|
||||||
|
|
||||||
|
```
|
||||||
|
docker volume ls # find the old volume name
|
||||||
|
docker volume rm <old_volume_name>
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Herzlichen Glückwunsch, Ihre PostgreSQL-Datenbank wurde erfolgreich von Version 13 auf 17 migriert!
|
||||||
Reference in New Issue
Block a user